본문 바로가기

코딩/PHP

[PHP] XSS(크로스 사이트 스크립트) 시큐어코딩

728x90
반응형

1

str_replace 함수

str_replace('찾을 문자열', '치환할 문자열', 변수);

 

게시판이 입력폼으로 값을 받을때 <script>alert('hi');</script> 이런식으로 값이 들어와서 db에 insert가 되면

리스트에서 계속 스크립트가 실행 되서 사용자들이 정상적으로 이용을 못하게 된다.

 

그래서 항상 필터링을 해줘야된다.

 

$title = '<script>alert('hi');</script>';

$contents = $_POST['contents'];

 

$title = str_replace("<script>", "", $title);

$contents = str_replace("<script>", "", $contents);

 

이렇게 하면 결과는

 

alert('hi'); 앞뒤 script는 삭제된 값만 노출되서 스크립트가 실행되지 않는다.

 

2

 

htmlspecialchars 함수

 

$title = htmlspecialchars($_POST['title']);

$contents = htmlspecialchars($_POST['contents']);

 

값을 받을때 감싸주면 된다.

728x90
반응형