对StripTags过滤器感到困惑

时间:2010-10-11 06:41:39

标签: php security zend-framework zend-form zend-filter-strip-tags

我对Zend中使用的StripTags过滤器有点困惑。我认为这意味着剥离可能导致XSS的标签。那么这不应该意味着在视图中输出数据时应该使用它吗?我已经看到它与表单输入一起使用

->addFilter('StripTags')

它应该与视图中的表单和输出中的输入一起使用,还是通过在数据进入数据库之前过滤数据来工作(在这种情况下这不是一个好主意)。

4 个答案:

答案 0 :(得分:2)

与您的问题不是直接的答案,而是更多的替代方法。

在博客文章"HTML Sanitisation: The Devil's In The Details (And The Vulnerabilities)"中,Padraic Brady讨论了HTML清除工作以及执行此操作的各种组件。他表达了对使用StripTags过滤器的重大担忧。

HTMLPurifier似乎是更好的选择。

答案 1 :(得分:0)

StripTags与视图中的输出一起使用。 请注意,在可编辑字段(例如textarea)中显示文本实际上仍然是“视图中的输出”。 在进入数据库之前,不应对数据进行预处理/转换。

答案 2 :(得分:0)

除非您通过

明确调用它,否则不会发生条带标记过滤器
$stripedValue = $form->getValue('fieldName');

答案 3 :(得分:0)

根据ZF2非官方文件:

https://zf2.readthedocs.org/en/latest/modules/zend.filter.set.html#striptags

Zend \ Filter \ StripTags可能不安全

请注意,Zend \ Filter \ StripTags只应用于删除所有可用标记。

使用Zend \ Filter \ StripTags通过剥离一些不需要的标记来保护您的网站安全将导致不安全和危险的代码。

Zend \ Filter \ StripTags不得用于防止XSS攻击。此过滤器不能替代使用Tidy或HtmlPurifier。

因此请自行承担风险...