200219

2020. 2. 19. 16:53

-server side mitigations (xss를 유발할수 있는 태그 삽입 방지)

특수문자를 태그로서 인식이 안되도록 escape (ex-><")

사용자 input에 html을 지원해야한다면 화이트리스트 필터링 (허용해도 안전한 일부 태그, 속성을 제외한 모든 값을 필터링 하는것 (ex-img/video/a 빼고 나머지는 필터링)

사용자가 페이지를 접속할때마다 현재 ip주소와 로그인했던 ip주소가 동일한지 여부 확인하는 방법 but 최근에는 wifi 쓰는데 wifi 바뀔때마다 ip주소도 바뀌니까 접속한 ip가 아닌 접속한 국가를 변경하는 경우를 탐지하는 형태로 변형됨

 

-http only flag

서버측에서 응답 헤더에 set-cookie 헤더를 전송해 쿠키를 생성할 때 옵션으로 설정 가능

자바스크립트에서 해당 쿠키에 접근하는 것 금지(공격자가 알아낼수x

 

-content security policy(csp)

각각의 지시어를 적용하여 사이트에서 로드하는 리소스들의 출처를 제한할 수 있습니다.

이 외에도 많은 리소스 형식 (이미지, 폰트, 오브젝트, ...) 의 출처를 제한할 수 있는 지시어들이 존재하며 script-src 'nonce-noncevalue13b739d8ea12' 와 같이 script-src를 이용해 nonce (랜덤) 값을 설정하고 HTML 태그를 이용해 자바스크립트를 실행할 때는 반드시 서버에서 생성된 nonce 값을 알아야만 실행될 수 있도록 할 수 있습니다.

즉, XSS 공격을 당하더라도 서버에서 매번 생성되는 nonce 값을 유추할 수 없다면 일반적인 방법으로 자바스크립트 실행이 불가능해집니다.

 

-X-XSS-Protection 

해당 정책은 웹 브라우저에 내장된 XSS Filter를 활성화할 것인지를 설정합니다. XSS Filter는 웹 브라우저에서 전송된 Request 값이 XSS 공격 코드와 유사하게 생겼고, Response에 해당 공격 코드가 포함되었을 경우에 XSS 공격이 수행되었다고 판단하여 XSS 공격이 발생했음을 유저에게 알리고 차단합니다. Request 값과 Response를 비교해 판단하는 것으로 보아 알 수 있듯이 Reflected XSS 공격을 막는 데에 적합한 방어 방법이며, 다른 유형의 XSS 공격을 방어할 수 없습니다.

(요즘은 삭제되는 추세)

-csrf

<img src="/sendmoney?to=dreamhack&amount=1337"><img src=1 onerror="fetch('/sendmoney?to=dreamhack&amount=1337');"><link rel="stylesheet" href="/sendmoney?to=dreamhack&amount=1337">

 

 

BELATED ARTICLES

more