Web framework security

33

description

by pknam

Transcript of Web framework security

jinja2

article.id 가 “ onmouseover=“alert(document.cookie) 라면??

article.title 이 </a><script>alert(document.cookie);</script> 라면??

‘ &#39;

“ &quot;

< &lt;

> &gt;

안전

위험

article.id 가 onmouseover=alert(document.cookie) 라면??

1. HTML attribute는 반드시 double quote로 감싼다

2. javascript code를 직접 생성해 넘길 때에는 반드시 직접 검사한다

views.py

write.html

Server

Client 1

Client 2

1. 하나의 session당 csrf_token을 하나밖에 운영할 수 없다.

2. 한 번 쓰고 버리는 것이 아니고 session이 유지되는 동안 계속 재활용한다.

1. XSS공격이 가능한 페이지가 있어야 한다.

2. target의 csrf_token을 알 수 있어야 한다.

/vuln XSS 감염된 페이지

/write_form 글쓰기 form이 있는 페이지

(POST) /write 글쓰기

글쓰기 요청

/vuln XSS 감염된 페이지

/write_form 글쓰기 form이 있는 페이지

(POST) /write 글쓰기 ajax

csrf_token 획득

글쓰기 요청

1.XSS 방어

2.Request Header의 Referer를 확인

SELECT :

INSERT :

SELECT :

SELECT * FROM testapp_myboard WHERE id=‘pknam’ AND pw=‘1234’

Object-Relational Mapper

’ or 1=1 --

\’ or 1=1 --

URL 패턴 지정시 자료형에 알맞는 패턴 지정한다. ->공격을 일차적으로 필터링하는 효과

django와 동일하게 jinja2 사용

1. HTML attribute는 반드시 double quote로 감싼다

2. javascript code를 직접 생성해 넘길 때에는 반드시 직접 검사한다

제공하지 않음