2010-06-07 5 views
2

내 사이트는 사용자가 계정을 업데이트하고 댓글을 입력하고 비공개 메시지를 보낼 수있는 WYSIWYG 편집기를 사용합니다.PHP XSS 예방 화이트리스트 작성

편집기 (CKEditor)는 사용자가 유효한 입력을 입력 할 수있게하는 데 적합하지만 TamperData 또는 다른 방법을 통한 삽입에 대해 걱정합니다.

서버 측에서 어떻게 제어 할 수 있습니까?

특정 태그를 허용해야합니다 : <b><ul><ol><a><img><br>, 이것이 XSS 방지에 대한 SAFE 접근 방식입니까?

답변

7

사용 HTML Purifier :

HTML 정수기는 PHP로 작성된 표준을 준수하는 HTML 필터 라이브러리입니다. HTML Purifier는 철저히 감사되고 안전하지만 아직 허용 된 허용 목록 인 악성 코드 (XSS라고도 함) 을 모두 허용 허용 목록으로 모두 제거합니다.

+0

내 자신의 화이트리스트로 strip_tags에 비해 이점이 있습니까? – pws5068

+0

사실, 여기에서 내 대답을 발견했습니다. http://htmlpurifier.org/comparison 도움 주셔서 감사합니다. – pws5068

+0

@ pws5068 : 환영합니다 :) – Sarfraz

0

strip_tags 님이 친구 것입니다. 두 번째 매개 변수는 허용 된 태그의 배열을 전달 할 수 strip_tags

+1

** 두 번째 매개 변수 **는 안전하지 않습니다 **, 특성을 제거하지 않기 때문에 **입니다. 누군가 안전한 요소의 속성을 여전히 악용 할 수 있습니다 (예 : '
(전체 화면으로 스트레치) onmouseover="evil_script()">'. – Kornel

+0

그 사람이 evil_script 용 코드를 어떻게 주입 할 예정입니까? – MANCHUCK