Filtering : 사용자가 입력한 정보에서 문제가 될만한 것을 차단하는 것
Escaping : 저장되어 있는 정보를 사용자에게 표시할 때(출력) 문제가 될만한 것을 차단하는 것
Filtering
사용자가 입력하는 정보는 모두 불신해야 한다.
mysqli_real_escape_string( ) : 인자로 들어온 데이터 중에서 sql 공격 관련 기호들을 문자로 바꾸는 함수
=> SQL Injection 방어 가능





Escaping
오염된 데이터 출력을 막아야 한다.
htmlspecialchars( ) : HTML 특수 문자가 일반 문자로 인식되어 그대로 출력되도록 해주는 함수
=> XXS 방어 가능
& | & |
" | " |
' | ' |
< | < |
> | > |
<?php
echo '<script>alert("hi");</script>'; //1번
echo htmlspecialchars('<script>alert("hi");</script>');//2번
?>


1번의 경우는 대표적인 XXS 공격으로, hi라는 경고창이 뜨게 되지만
2번의 경우는 함수를 이용해 특수문자들을 문자열 그대로 출력하고 있다.
<!--사용 예시-->
...
$escaped_title = htmlspecialchars($row['title']);
echo "<li><a href=\"index.php?id={$row['id']}\">{$escaped_title}</a></li>"
...
'WEB > PHP' 카테고리의 다른 글
PHP와 MySQL_연동 후 데이터 출력 (0) | 2021.01.31 |
---|---|
PHP와 MySQL 연동 (0) | 2021.01.31 |
PHP & DATABASE (0) | 2021.01.30 |
form과 GET, POST (0) | 2021.01.29 |
PHP 문법 기초 (0) | 2021.01.28 |