본문 바로가기

S-DEV

(41)
XSS(Cross-Site Scripting) • Javascript - 객체 기반의 스크립트 언어 - HTML과 CSS 각각 웹 페이지의 내용과 디자인을 담당하는 정적인 언어 - Javascript는 웹 페이지를 동적으로 변경해 주는 동적 언어 • Cookie - HTTP 프로토콜은 Connectionless 와 Stateless의 특징을 가지고 있어 HTTP 프로토콜에서 클라이언트를 기억하는 등의 상태 유지를 위해 Cookie를 사용한다. (Connectionless: 요청 & 응답 이후에 연결을 종료하는 특징, Stateless : 연결 종료 후 상태 정보를 저장하지 않는 특징) - Key 와 Value로 이뤄지며 서버가 클라이언트에 쿠키 값을 발급하면 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 함께 전송한다. - 서버는 클라이언트 요청에 ..
SQL Injection • DB(데이터베이스) 데이터베이스는 구조화된 데이터의 조직화된 모음으로 컴퓨터 시스템에 전자적으로 저장되며 DBMS에 의해 제어된 데이터는 일련의 테이블에서 행과 열로 구성되고 SQL은 대부분의 데이터베이스에서 데이터 작성 및 쿼리에 사용된다. • SQL의 개념 SQL은 관계형 데이터베이스에서 사용되는 '구조적 질의 언어'로 데이터베이스의 구조와 데이터를 조작하는 데 사용된다. - DDL(Data Definiton Language) CREATE, ALTER, DROP - DML(Data Manipulation Language) SELECT, INSERT, UPDATE, DELETE -DCL(Data Control Language) GRANT, REVOKE -TCL(Transaction Control L..
웹 해킹이란? • 웹 해킹의 개념 웹 해킹은 웹 서버, 웹 애플리케이션, 웹 페이지 등에서 발생할 수 있는 보안 취약점을 악용하여 해커가 공격하는 것을 의미한다. 타 사용자의 권한, 세션 혹은 인증 우회 등을 통해 정보를 유출하거나 변조하는 등 해커의 목적에 따라 다양한 피해를 줄 수 있다. 웹 서비스는 다양한 정보가 저장되어 있고, 다수의 사용자들이 이용하기 때문에 해킹 대상으로 쉽게 노출되어 있다. • 웹 해킹의 분류와 공격 방법 웹 해킹은 크게 Client-Side 공격과 Server-Side 공격으로 분류된다. Client-Side 공격은 XSS, CSRF 등 공격을 통해 Session Hijacking, Cookie Poisoning, 타 사용자 권한 악용 등을 수행할 수 있다. Server-Side 공격은 ..
정규화 표현식 • 정규식(Regex) 정규식은 특정 검색 패턴에 대한 하나 이상의 일치 항목을 검색하여 텍스트에서 저오를 추출하는데 사용된다. Ex) ^ and $ The : The가 들어있는 모든 문자열을 매칭 ^The : The로 시작하는 모든 문자열을 매칭 end$ : end로 끝나는 문자열을 매칭 ^The end$ : The end와 정확하게 일치하는 문자열을 매칭 Ex) *+? and {} abc* : ab 그리고 0개 이상의 c를 포함한 문자열과 매칭 abc+ : ab 그리고 1개 이상의 c를 포함한 문자열과 매칭 abc? " ab 그리고 0개 또는 1개의 c를 포함한 문자열과 매칭 abc{2} : ab 그리고 2개의 c를 포함한 문자열과 매칭 abc{2.} : ab 그리고 2개 이상의 c를 포함한 문자열과..
파이썬 기초 문법 • 변수(variable) - 변수를 사용하여 데이터를 저장하고 처리한다. - 변수는 데이터를 저장하기 위한 메모리 공간이며, 프로그램에서는 이 변수에 할당된 값에 따라 다른 연산을 수행할 수 있다. - 변수 이름은 숫자로 시작할 수 없으며, 예약어로 지정된 단어는 변수 이름으로 사용할 수 없다. - 파이썬은 동적 타이핑을 지원하는 프로그래밍 언어이다.(변수를 선언할 때 해당 변수에 어떤 데이터 타입을 저장할 것인지 미리 정하지 않고, 변수가 실제로 사용될 때 그때서야 변수의 데이터 타입을 결정하는 방식이다. • 문자열(string) - 문자열은 " " 혹은 ' ' 로 묶인 문자의 시퀀스이다. -> 문자열의 인덱싱, 슬라이싱, 메서드, 포맷팅 - split()과 join()은 문자열을 분리하고 합치는 함..
strcpy 구현 • strcpy 정의 char *strcpy( char* strDestination, const char* strSource ) strcpy() 함수는 null byte를 포함하는 strSource 문자열을 strDestination 버퍼에 복사를 합니다. * strDestination 버퍼에 strSource 문자열을 복사하기 위해서는 충분한 사이즈가 있어야한다.(strSource 문자열 사이즈 안에 null byte가 없으면, strDestination 문자열에도 null byte가 추가 되지 않아 정상적인 문자열 처리가 불가능하다.) • strcpy 구현 #define _CRT_SECURE_NO_WARNINGS #include #include char my_strcpy(char* str1, char..
int 배열과 char 배열의 차이점 • int 배열 int 배열은 정수형 데이터를 사용할 때 사용이 가능하며, 보통 4바이트 크기를 가진다. 실습 #define _CRT_SEUCRE_NO_WARNINGS #include int main() { //int 배열 int num[9] = { 1,2,3,4,5,6,7,8,9 }; char str[] = "Hello world"; for (int j = 0 ; i < sizeof(num)/sizeof(int); j++){ printf("%x\n",&num[j]); } for (int i = 0; i < sizeof(str)/sizeof(char); i++) { printf("%x\n", &str[i]); } } - int 배열 메모리 확인 -char 배열 메모리 확인 int 배열의 시작 주소와 끝 ..
Windows C 최적화 • 최적화 컴파일러 최적화 기능은 소스코드를 기계어로 변환할 때 코드를 더 빠르게 실행하고 메모리를 효율적으로 사용하기 위함이다. - 코드 최적화 /O 옵션 ⇒ 최대 속도 또는 최소 크기에 대한 코드를 만드는데 도움이 되는 옵션이다. 여러 옵션들이 있지만, Visual Studio 프로그램에서 할 수 있는 최적화 옵션에 대해서만 작성을 하였다. > /Od 옵션은 최적화를 사용하지 않도록 설정하여 컴파일 속도를 조정하고 디버깅을 간소화한다. > /O1 옵션은 최소 크기 코드를 생성하는 최적화의 조합을 설정한다. > /O2 옵션은 최대 속도를 위해 코드를 최적화하는 최적화의 조합을 설정한다. > /Ox 옵션은 속도에 중점을 둔 여러 최적화를 선택하는 조합 옵션이다. • 최적화 예시 코드 #define _CR..