SQL 기본 문법을 알아야 하는 이유취약점 진단 시 성공적인 SQL 인젝션 공격을 위해서는 SQL 기본 문법에 대한 이해는 필수다! 데이터베이스란 무엇인가?데이터를 구조적으로 모아둔 데이터 집합소 관계형 데이터베이스(Relational Database: RDB)- 데이터를 열과 행을 가진 테이블 형태로 표현하며, 구조적으로 데이터 관리를 한다. 데이터베이스 용어(A) = 데이터의 집합 → 테이블(B) = 행 → 레코드(C) = 열 → 컬럼 관계형 데이터베이스 관리 시스템(RDBMS)관계형 데이터베이스를 관리하는 시스템을 RDBMS라고 부른다.주요 기능은 데이터 추가, 수정, 삭제, 조회, 데이터 무결성 유지, 트랜잭션 관리, 백업 및 복원, 보안 등이 있다.대표적인 관계형 데이터베이스는 Oracl..
Client-Side Sciprt와 Server-Side Script에 대한 이해해당 실습을 진행하기 전 XAMPP를 설치해야 하는데, XAMPP 설치는 여기를 참고한다.XAMPP 설치 후 C:\xampp\htdocs\example 경로에 test1.php 파일을 생성한다.test1.php는 서버 측에서 실행되는 Server-Side Script로 만들어진 파일이다. 해당 파일의 코드를 작성 후 127.0.0.1/example/test1.php 접속 시 웹 브라우저에서 아래와 같이 확인이 가능하다.test1.php 동적 자원을 호출하였더니, test 라는 문자열이 출력되었다.소스 보기를 통해 확인해도 test 라는 문자열만 확인이 된다. test1.php에는 echo "test"라는 코드를 작성하였는..
웹 아키텍처일반적인 웹 아키텍처는 클라이언트 - 웹 서버 - 데이터베이스의 형태로 구성되어 있다.영역별로 프론트 엔드(Front-End)와 백 엔드(Back-End)로 나뉜다.웹 개발자들은 프론트 엔드 개발자와 백 엔드 개발자로 나뉘며, 두개를 전부하는 풀스택 개발자도 있다.아래는 웹 아키텍처는 웹을 단순화 시킨 구조로 실제 환경은 이보다 훨씬 복잡하다.취약점 진단에 앞서서 웹 아키텍처에 대한 이해는 필수이다.프론트 엔드 = HTML, CSS, JavaScript백 엔드 = PHP, JSP, ASP 웹 아키텍처 동작 원리 분석클라이언트 측에서 사용자가 웹 브라우저를 통해 사이트 접속을 하게 된다.그러면 웹 브라우저에서는 가장 먼저 도메인에 따른 IP 변환 작업을 한다.이유는 데이터 전송을 위해서는 I..
상태 유지 및 관리의 필요성최초의 웹은 단순히 문서를 전달 받고 정보를 공유하는 목적으로 사용되었으며, 이 경우에는 상태 유지 및 관리가 굳이 필요하지 않다. 그러나 오늘날의 웹은 쇼핑몰에서 원하는 상품을 장바구니 혹은 카트에 담고 쇼핑이 완료되면 결제하고 결제가 완료되면 정상적으로 결제가 되었는지 확인을 하며, 예상 도착일을 본다. 또한 한번의 로그인을 통해 다른 페이지 접근 시 나에 대한 상태 정보가 유지 된다. 이러한 상태 유지 및 관리를 위해서는 쿠키가 사용된다. 쿠키쿠키를 통해 사용자 식별 및 세션 유지를 통해 클라이언트와 서버 간의 상태 관리를 한다.웹의 중요한 기술중의 하나로 현재 가장 많이 사용되고 있는 인증 방식이다.쿠키의 종류는 지속 쿠키, 세션 쿠키가 있다.쿠키 → 지속 쿠키(Pe..
HTTP 프로토콜 개념팀 버너스 리 박사에 의해 개발된 HTTP(HyperText Transfer Protocol)는 하이퍼텍스트 문서를 전송하기 위해 사용되는 프로토콜, 즉 통신 규약으로 웹의 핵심 기술이다. 하이퍼텍스트 문서는 HTML 파일이다.HTTP 버전HTTP 버전은 다음과 같다. HTTP/0.9최초로 웹이 만들어 졌을 때 오직 HTML을 받아 오기위해 만들어 졌다.그래서 버전 번호도 없고 명세서도 없으며, 정식 사양이 아니었다.이후 HTTP/1.0부터 정식 사양으로 되면서 이전이랑 의미로 HTTP/0.9라는 버전이 붙여졌다. HTTP/0.9는 GET메소드만 지원하며, 특별한 기능은 없다.HTTP/0.9에서 HTTP/1.0으로 빠르게 대체되었다. HTTP/1.0HTTP의 정식 사양으로 처음으로..