• Javascript
- 객체 기반의 스크립트 언어
- HTML과 CSS 각각 웹 페이지의 내용과 디자인을 담당하는 정적인 언어
- Javascript는 웹 페이지를 동적으로 변경해 주는 동적 언어
• Cookie
- HTTP 프로토콜은 Connectionless 와 Stateless의 특징을 가지고 있어 HTTP 프로토콜에서 클라이언트를 기억하는 등의 상태 유지를 위해 Cookie를 사용한다.
(Connectionless: 요청 & 응답 이후에 연결을 종료하는 특징, Stateless : 연결 종료 후 상태 정보를 저장하지 않는 특징)
- Key 와 Value로 이뤄지며 서버가 클라이언트에 쿠키 값을 발급하면 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 함께 전송한다.
- 서버는 클라이언트 요청에 포함된 쿠키 값을 통해 클라이언트를 구분하고 클라이언트는 쿠키 값을 로컬에 저장한다.
• Session
- Session은 Cookie와 다르게 사용자 정보 값을 브라우저에 저장하는게 아니라 서버에서 Session ID를 발급하여 통신 종료 혹은 Session TimeOut 전까지 클라이언트의 정보를 유지한다.
- Session ID는 유추하기 어려운 랜덤한 문자열로 되어있다.
• XSS
- Client-Side 취약점 중 하나로 게시판, 공지사항 등에 악성 스크립트를 삽입하여 일반 사용자의 브라우저에서 해당 스크립트를 실행시킬 수 있다. 이를 통해 세션 및 쿠키를 탈취하거나 악의적인 페이지로 Redirect 할 수 있다.
- Reflected XSS
악성 스크립트가 URL에 삽입되는 방식
- Stored XSS
악성 스크립트가 게시글, 댓글 등 서버에 삽입되는 방식
- DOM XSS
악성 스크립트가 URL Fragment에 삽입되는 방식
- Universal XSS
브라우저 혹은 브라우저의 플러그인에서 발생하는 XSS
• Secure Coding
- 입력 값 필터링 및 치환
xss공격에 자주 사용되는 특수 문자 등이 들어오면 공백으로 치환하는 등의 방법을 사용한다.(확실한 방법은 아님)
- HTML Entity
< 와 > 같이 HTML로 인식되는 특수문자들을 HTML Entity로 치환해 주는 방법을 사용한다.
< 는 < 로 치환, >는 ㅎ> 로 치환
- Anti-XSS Library
XSS 방어를 위해 여러가지 종류의 라이브러리들이 있으며 라이브러리를 사용하여 XSS 방어하는 방법을 사용한다.
- CSP(Content-Security Policy)
웹 페이지에 있는 컨텐츠들이 서버에서 의도한 콘텐츠가 맞는지 확인하기 위해서 사용되는 보호 기법이다.
'S-DEV > 웹 해킹 보안과 공격' 카테고리의 다른 글
Command Injection (0) | 2023.07.22 |
---|---|
SQL Injection (0) | 2023.07.21 |
웹 해킹이란? (0) | 2023.07.21 |