반응형
내가 하면 꿀잼이지만, 남이 하면 족같은 xss, sql injection을 방지할 수 있는 함수들을 정리한다.
출처는 이고잉님의 생활코딩이다.
htmlspecialchars("~~~~")
html에서 특수한 의미를 갖는 다음의 문자들을 모양은 같고 의미는 다르도록 치환해준다. 삽입된 javascript 문이 실행되는 것을 막을 수 있다.
Character | Replacement |
---|---|
& (ampersand) | & |
" (double quote) | ", unless ENT_NOQUOTES is set |
' (single quote) | ' (for ENT_HTML401) or &apos (for ENT_XML1, ENT_XHTML or ENT_HTML5), but only when ENT_QUOTES is set |
< (less than) | < |
> (greater than) | > |
example
$i = 1;
while($row = mysqli_fetch_assoc($result)){
echo "<tr><td>".$i."</td><td>".htmlspecialchars($row['username']).'</td><td>'.$row['date'].'</td><td>'.$row['score']."</td></tr>";
$i++;
}
mysqli_real_escape_string
문자열에 포함된 특수 문자들을 escape시켜, 해당 문자가 sql 문에서 오동작을 유발하는 것을 막는다. escape되는 문자들은 NULL, \n, \r, \, ', ", ctrl+z 이다. sql injection을 막는 데에 사용할 수 있다.
example
$conn = mysqli_connect($config['host'],$config['user'],$config['pw']);
mysqli_select_db($conn, $config['database']);
$username = mysqli_real_escape_string($conn, $_POST['username']);
$score = mysqli_real_escape_string($conn, $_POST['score']);
strip_tags
문자열에서 태그들을 모두 없애버리거나, 지정한 특정 태그들만 남기게 할 수 있는 함수이다. 삽입된 코드들을 막는데에 사용할 수 있다.
example
echo strip_tags($row['description'], '<a><h1><h2><h3><h4><h5><ol><ul><li>');
반응형
'Programming$ > Web Develop' 카테고리의 다른 글
[Javascript] CountDown 구현 (0) | 2020.08.31 |
---|---|
js 변수 값 php로 전달하기 (0) | 2019.05.07 |
[html] form submit action 주의 (0) | 2019.05.07 |
[JavaScript] removeAttribute() (0) | 2019.05.07 |
[JavaScript] practice 1 (0) | 2019.03.06 |