Web framework security

33

description

Web Framework들에서 기본적으로 제공해주는 보안장치들에 대한 설명. django와 flask를 대표로 알아본다.

Transcript of Web framework security

Page 1: Web framework security
Page 2: Web framework security
Page 3: Web framework security
Page 4: Web framework security
Page 5: Web framework security
Page 6: Web framework security

jinja2

Page 7: Web framework security

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

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

Page 8: Web framework security

‘ &#39;

“ &quot;

< &lt;

> &gt;

Page 9: Web framework security

안전

위험

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

Page 10: Web framework security

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

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

Page 11: Web framework security
Page 12: Web framework security

views.py

Page 13: Web framework security

write.html

Page 14: Web framework security

Server

Client 1

Client 2

Page 15: Web framework security

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

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

Page 16: Web framework security

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

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

Page 17: Web framework security

/vuln XSS 감염된 페이지

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

(POST) /write 글쓰기

글쓰기 요청

Page 18: Web framework security

/vuln XSS 감염된 페이지

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

(POST) /write 글쓰기 ajax

csrf_token 획득

글쓰기 요청

Page 19: Web framework security

1.XSS 방어

2.Request Header의 Referer를 확인

Page 20: Web framework security

SELECT :

INSERT :

Page 21: Web framework security

SELECT :

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

Object-Relational Mapper

Page 22: Web framework security

’ or 1=1 --

\’ or 1=1 --

Page 23: Web framework security
Page 24: Web framework security

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

Page 25: Web framework security
Page 26: Web framework security

django와 동일하게 jinja2 사용

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

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

Page 27: Web framework security

제공하지 않음

Page 28: Web framework security
Page 29: Web framework security
Page 30: Web framework security
Page 31: Web framework security
Page 32: Web framework security
Page 33: Web framework security