PHP
45. PHP html 이스케이프 처리 하기
drizzle0925
2021. 10. 14. 08:59
728x90
사용자가 입력한 html은 언제든지 XSS(Cross Site Scripting) 공격의 가능성이 있다. 이러한 공격에 대비하기 위해 html을 치환한다.
<?php
$html = '<script>alert("XSS 공격");</script>';
$encode = htmlspecialchars($html);
echo $encode;
echo PHP_EOL; // 뛰어쓰기 상수
$decode = htmlspecialchars_decode($encode);
echo $decode;
?>
위 코드를 escape.php 파일에 저장하고 브라우저에서 결과를 확인한다.
localhost/escape.php로 접근하면 alert창이 실행되고, 소스보기를 보면 아래와 같이 표시된다.
<script>alert("XSS 공격");</script>
<script>alert("XSS 공격");</script>
htmlspecialchars 함수는 html에서 XSS 공격을 방어하기 위해 문자열에서 특정한 특수 문자를 HTML 엔티티로 변환한다. XSS 공격은 Cross Site Scripting의 약자로 태그 등을 입력해서 서버의 보안 취약점을 노리는 공격이다.
인코딩한 결과를 반대로 바꾸려면 디코딩 함수인 htmlspecialchars_decode를 사용한다.
728x90