0

我想从用户提供的输入中去除所有 html 和跨站点脚本攻击,因为用户提供的所有输入随后都会在聊天框中显示给其他用户。

我计划在将提供的输入插入数据库之前通过过滤器(例如 htmlpurifier)运行提供的输入,然后每次后续数据库读取都不必过滤它。

htmlpurifier 似乎有点矫枉过正,但可能有必要确保不使用跨站点脚本攻击?但是,即使使用该过滤器,我也看不到剥离以下内容的方法:

<img src="http://example.com" />

从输入。

有没有可以做我想做的工具/类/功能?(剥离所有 html 并删除 XSS 漏洞)请记住,这仅适用于聊天框而不是整个站点,但它确实需要快速,因为聊天框有许多同时用户。

谢谢。

4

1 回答 1

0

有几种方法可以实现这一点,并且在不查看代码的情况下实际上不可能给出具体示例,但请查看preg_matchpreg_matchpreg_filterhtmlspecailchars之类的内容,这可能会持续一段时间,因此请阅读php string functionsPCRE .

此外,在将内容发布到 DB 时,还预先构建了 DB 驱动程序来执行此操作。查看 PHP 数据对象mysqli。在我看来,你应该专注于 PHP 数据对象,因为它往往更容易保证事情的安全。

于 2013-06-23T15:14:02.047 回答