2010-11-18 3 views
1

그래서 나는 많은 사용자 입력을 가지고있는 웹 2.0 사이트를 가지고 있지만 어떤 웹 2.0 사이트와 마찬가지로 스팸에 문제가있을 것입니다. 필자가 알고있는 한 가장 쉬운 방법은 모든 HTML 태그를 차단하는 것입니다. 사용자는 서식을 지정할 필요가 없으며 간격을 수정하는 데 사용합니다.웹 페이지에서 HTML 태그 차단하기

그러나 나는 차단 태그가 없다고 생각합니다. xmb는 완벽하게 들리지만 90 년대부터 꽤 멍청 해졌습니다.

그렇지 않으면 어떤 종류의 필터링이 필요합니까? 스택 오버플로가 '기본'HTML을 허용하는 것을 볼 수 있습니다 ... 어떻게합니까? 특정 태그를 차단하거나 특정 태그를 허용하십시오. 내가 말한 것처럼 사용자는 태그가 필요 없습니다.

편집 : 당신이 어떤 HTML을 허용하지 않으려는 경우 바로 해당 기관에 특별한 의미로 문자를 변환, 장고

+4

을 당신이있는 서버 측 언어를 지정하지 : 당신이 좋아하는 그들을 제거하는 템플릿 필터를 사용할 수

from django.utils.html import strip_tags strip_tags(string_value) 

을 또는 :

또는 당신은 완전히 다음과 같이 태그를 제거 할 수 있습니다 사용. 이것은 서버 측 처리가 필요함을 알기 때문에 필수적입니다. –

+0

Info : Django에 대한 질문은 – SuperDuck

+0

입니다. [this other post] (http://stackoverflow.com/questions/858773/filtering-javascript-out-of-html)를 참조하십시오. , 또한 사용합니다 : https://github.com/dcollien/FilterHTML 이런 종류의 일을 – codedvillain

답변

3

장고, 당신은 (인코딩) 탈출 할 수 <> 같은 특수 HTML 문자가 너무 태그로 표시 할 수 있습니다 읽을 수있는 텍스트 만 HTML로 작동하지 않습니다 : 템플릿 변수가 이미 탈출되었을 수도

from django.utils.html import escape 
print escape('<div class="q">Q & A</div>') 

주, 당신은 당신이 탈출를 사용할 필요가 있는지 먼저 확인 할 수 있습니다.

{{ value|striptags }} 
+0

난 장고를 사용하기 때문에 어려울 수 있지만 조금은 n00b 정도이므로 ... 가능할 수도 있고 깨닫지도 못합니다. django에서 그것을 수행하는 방법에 대한 아이디어? – paddymelon

+0

django에서 수행하는 방법을 포함하도록 대답을 업데이트했습니다. – SuperDuck

+0

Sweet. Value | striptags는 앱에서 데이터를 사용하는 방법에 이상적입니다. 정말 고마워! – paddymelon

2

를 사용하여. 예 : > ~ &gt;& ~ &amp;. 당신이하는 일은 데이터를 처리하는 언어에 달려 있습니다. TT에서는 [% some_data | html %]이고, PHP에서는 htmlspecialchars 함수가 사용됩니다.

일부 콘텐츠를 허용하려면 HTML 구문 분석기를 통해 실행해야하며 모든 요소와 특성을 흰색 목록과 대조하여 HTML로 다시 serialize해야합니다. 다시이이 함께 할 수있는 도구가 있지만, 그것은 당신이에서 작업하는 언어에 따라 달라집니다.

+0

나는 어려울 수 있으므로 장고를 사용하고 있지만 나는 그것에 너무 n00b 비트 ... Might 가능하고 나는 깨닫지 못한다. django에서 그것을 수행하는 방법에 대한 아이디어? – paddymelon

+0

이것은 strip-tags 대답보다 낫습니다. – Spudley

+0

@ Spudley 다른 답변에는 이미 strip_tags()뿐만 아니라이 메서드가 포함되어 있습니다. – SuperDuck

관련 문제