阻止网页中的HTML标记

2024-09-28 03:17:34 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我有一个web2.0网站,我正在建设大量的用户输入,但与任何web2.0网站一样,我会遇到垃圾邮件的麻烦。就我所知,最简单的方法是阻止任何HTML标记。用户不需要格式化,我将用于固定间距。在

但我不认为有任何阻塞标记,xmb听起来很完美,但从90年代开始就被贬抑了,真是太蠢了。在

否则,我需要什么样的过滤?我看到堆栈溢出允许“基本”HTML。。。我该怎么做?阻止某些标记或允许某些标记等,如我所说,用户不应该需要任何标记。在

编辑:使用django


Tags: django方法用户标记编辑堆栈网站html
2条回答

Django中,您可以转义(编码)特殊的HTML字符,如<和{},这样标记可以显示为可读文本,但不起到HTML的作用:

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

请注意,您的模板变量可能已经被转义,您可能需要首先检查它,看看是否需要使用escape。在

或者,可以完全删除标记,如下所示:

^{pr2}$

或者,您可以使用模板过滤器来删除它们,如:

{{ value|striptags }}

如果您不想允许任何HTML,那么只需将具有特殊含义的字符转换为它们各自的实体。e、 g.>&gt;和{}到{}。如何做到这一点取决于处理数据所用的语言,在TT中,我将[% some_data | html %],而在PHP中,htmlspecialchars函数将起作用。在

如果你想允许一些内容,你需要运行它和HTML解析器,对照白名单检查每个元素和属性,然后将其序列化回HTML。有一些工具可以帮助您做到这一点,但同样,这取决于您所使用的语言。在

相关问题 更多 >

    热门问题