본문 바로가기
WEB HACKING/웹 해킹[실습]

웹 시큐어 코딩 : XSS(Cross-Site Scripting)

by madevth 2022. 2. 21.
반응형

저번 포스팅에서는 SQL Injection에 대응하여 웹 시큐어 코딩을 해보았다.

SQL Injection 방어하기 : [모의해킹_실습] - 웹 시큐어 코딩 : SQL Injection

이번 포스팅에서는 XSS를 막아보자!

 

XSS 취약점의 근본적인 대응방안은, HTML Entity를 사용하는 것이었다.

[주요 HTML Entity]

HTML HTML Entity
< &lt;
> &gt;
& &amp;
" &quot;
' &apos;

 

php에서는 HTML 문자를 엔티티로 바꿔주는 htmlentities() 함수가 존재한다.

사용자의 입력값을 DB에 저장할 때 바꿔줄지, 출력할 때 바꿔줄지만 결정하면 되는데, 필자의 경우 출력할 때 바꿔주었다.

[read.php]

<div class = "posting_title"><?=htmlentities($title)?></div>
<div class = "posting_contents"><?=htmlentities($content)?></div>

게시판 글을 확인할 때 사용되는 제목과 내용 변수에 htmlentities 함수를 씌워주고 결과를 확인해보았다.

글을 저장할 때 <script>를 사용해도, 문자로 인식되어 출력되는 것을 확인할 수 있다.

반응형

댓글