2024-09-28 03:17:34 发布
网友
所以,我有一个web2.0网站,我正在建设大量的用户输入,但与任何web2.0网站一样,我会遇到垃圾邮件的麻烦。就我所知,最简单的方法是阻止任何HTML标记。用户不需要格式化,我将用于固定间距。在
但我不认为有任何阻塞标记,xmb听起来很完美,但从90年代开始就被贬抑了,真是太蠢了。在
否则,我需要什么样的过滤?我看到堆栈溢出允许“基本”HTML。。。我该怎么做?阻止某些标记或允许某些标记等,如我所说,用户不应该需要任何标记。在
编辑:使用django
在Django中,您可以转义(编码)特殊的HTML字符,如<和{},这样标记可以显示为可读文本,但不起到HTML的作用:
<
from django.utils.html import escape print escape('<div class="q">Q & A</div>')
请注意,您的模板变量可能已经被转义,您可能需要首先检查它,看看是否需要使用escape。在
或者,可以完全删除标记,如下所示:
或者,您可以使用模板过滤器来删除它们,如:
{{ value|striptags }}
如果您不想允许任何HTML,那么只需将具有特殊含义的字符转换为它们各自的实体。e、 g.>到>和{}到{}。如何做到这一点取决于处理数据所用的语言,在TT中,我将[% some_data | html %],而在PHP中,htmlspecialchars函数将起作用。在
>
>
[% some_data | html %]
如果你想允许一些内容,你需要运行它和HTML解析器,对照白名单检查每个元素和属性,然后将其序列化回HTML。有一些工具可以帮助您做到这一点,但同样,这取决于您所使用的语言。在
在Django中,您可以转义(编码)特殊的HTML字符,如},这样标记可以显示为可读文本,但不起到HTML的作用:
<
和{请注意,您的模板变量可能已经被转义,您可能需要首先检查它,看看是否需要使用escape。在
或者,可以完全删除标记,如下所示:
^{pr2}$或者,您可以使用模板过滤器来删除它们,如:
如果您不想允许任何HTML,那么只需将具有特殊含义的字符转换为它们各自的实体。e、 g.}到{}。如何做到这一点取决于处理数据所用的语言,在TT中,我将
>
到>
和{[% some_data | html %]
,而在PHP中,htmlspecialchars函数将起作用。在如果你想允许一些内容,你需要运行它和HTML解析器,对照白名单检查每个元素和属性,然后将其序列化回HTML。有一些工具可以帮助您做到这一点,但同样,这取决于您所使用的语言。在
相关问题 更多 >
编程相关推荐