2011-05-09 2 views
2

어떻게 완전히 PHP에서 XSS-공격을 방지 할 수 있습니까? 이것은 HTML 태그 나 다른 서식을 신경 쓰지 않는다고 가정합니다. strip_tags를 실행하고 완전히 안전 할만큼 충분합니까?PHP : XSS 공격을 완전히 막는 방법?

+0

[strip_tags()가 스크립팅 공격에 취약합니까?] (http://stackoverflow.com/questions/5788527/is-strip-tags-vulnerable-to-scripting-attacks) – Gordon

+7

@edem : XSS 취약점 언어에 독립적입니다. – Gumbo

+0

나는 PHP가 더 취약하다는 것을 안다. –

답변

4

htmlspecialchars()strip_tags()은 모두 HTML 페이지의 출력을 위해 사용자 입력을 정리하는 데 안전합니다.

관련 :

+2

컨텍스트에 따라 다릅니다. 당신은 온 클릭 이벤트 등의 내부에 자바 스크립트 문자열에, 자바 스크립트, CSS에서, 태그 사이를 출력 있습니까 – Erlend

+1

입력은 HTML 코드가이 기능을 작동하지만 경우에 같은 코드가 포함 입력하는 경우 :에 javscript : 경고 (1) 이 기능 XSS에서 유를 보호 할 수 있습니다 ... –

+0

@Pouya은 지금은 넌센스입니다. HTML 요소가 들어 있지 않으면 공격자가 자바 스크립트를 어떻게 실행합니까? –

0

가장 쉬운 방법은 단순히 HTML 태그를 입력으로부터 사용자를 방지하는 것입니다. 당신은() 또는 반드시 htmlspecialchars()를 strip_tags 경우 모든 사용자 입력은 다음 <script> 태그를 소개 할 수있는 방법이 없습니다.

제한된 마크 업을 허용하려면 bbcode와 유사한 구문을 사용할 수 있습니다 (PHP 라이브러리를 찾는 것이 어렵지 않아야합니다. 필자가 직접 한 적이 없으므로 권장 사항이 없습니다). 또는 HTMLpurifier를 사용하여 사용자가 입력 할 수있는 마크 업을 제한 할 수 있습니다.

관련 문제