테스트 사이트 - 개발 중인 베타 버전입니다

HTML Injection 막기

· 4년 전 · 4356 · 6

XSS는 사용자의 입력으로 HTML이나 흔하게는 자바스크립트 코드를 허용했을 때 발생합니다.

 

XSS는 주로 댓글 입력폼에서 가장 흔하게 발생합니다.

 

가장 자주 발생하는 형태는 악의적인 사용자가 웹 사이트의 사용자로부터

 

계정의 이름과 암호 쿠키를 훔치기 위한 코드를 작성하려고 시도하는 것 입니다.

 

더욱 더 나쁜 것은 다른 사용자의 컴퓨터에 트로이 바이러스를 다운로드하는 공격에 착수할 수 있다는 것 입니다.

 

크로스 사이트 스크립트를 막으려면 모든 HTML 마크업 코드를 제거하고 문자를 출력하는 형태로 교체해야 합니다.

 

<script src='http://x.com/hack.js'> </script> <script> hack(); </script>

 

만약 해커가 다음과 같은 코드를 작성했다고 했을 때 

 

htmlentities로 전달되면 자바스크립트를 실행하는 기호가 &lt &gt 로 해석되어  자바스크립트가 실행되지 않습니다.

 

따라서 SQL과 XSS 인젝션을 모두 처리 할 수 있는 함수는 다음과 같습니다. 

 

<?php
function mysql_entities_fix_string($string)
{
    return htmlentities(mysql_fix_string($string));
}    

function mysql_fix_string($string)
{
    if (get_magic_quotes_gpc()) $string = stripslashes($string);
    return mysql_real_escape_string($string);
}
?>

 

참고서적 : Learning PHP, MySQL , JavaScript & CSS

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 6개

4년 전
감사합니다~
와 좋은 팁입니다. 정말 감사합니다.
4년 전
안녕하세요. 유용한 소스 같은데...어떻게 활용하는지도 알려주실 수 있을까요?
감사합니다.
4년 전
감사합니다
감사합니다
ㄱㅁ

게시글 목록

번호 제목
23798
23797
23792
23791
23785
23781
23770
23766
23764
23761
23747
23732
23724
23718
23706
23700
23697
23686
23682
23681
23680
23678
23665
23644
23643
23639
23637
23630
23626
23616