2011-09-16 3 views
2

PHP로 미니 포럼을 만들고 텍스트 서식이 제한되어 있고 이미지가 포함 된 사용자 게시물을 허용하고 싶지만 안전하게 (XSS-wise)하고 싶습니다. 아래의 것들 중 가장 최적의 방법.BBCodes 사용하기 ... HTML을 파싱하거나 완전히 제거 하시겠습니까? (XSS/PHP)

1) 사용자 입력에서 모든 HTML 태그를 제거하고 WYSIWYG 편집기의 컨트롤을 BBCode로 바꿉니다. strip_tags는 이것으로 충분합니까?

2) WYSIWYG을 통해 HTML 입력을 허용하지만 파서를 사용하여 HTML의 출력을 BBCode로 변환하십시오. 누구든지이 보안 BBCode 파서를 추천 할 수 있습니까?

기타 아이디어는 환영합니다.

답변

4

안전을 위해 HTML을 구문 분석하거나 제거 할 필요가 없습니다. 인쇄하기 전에 htmlspecialchars을 통해 모든 것을 실행하면 안전합니다.

또한 BBcode를 사용하는 것과 직각입니다. 편집기에서 서식을 지정하기 위해 BBcode를 생성하도록 할 수 있으며 htmlspecialchars은 어떤 식 으로든 혼란에 빠지지 않습니다.

+0

이것은 내가 취할 경로와 같습니다. 감사합니다. 하나의 마지막 질문, 많은 사람들이 htmlspecialchars에 비해 htmlentities를 권장합니다. 실제로 더 안전합니까? – Bachx

+0

@Bachx : 아니요. 개인적으로 엔코 드를 올바르게 처리하지 못하는 사람들을 돕는 것 외에는 'htmlentities'에 대한 매력적인 사용 사례가 전혀 없습니다. – Jon

관련 문제