剥离JavaScript功能,即从用户输入中点击

时间:2012-05-25 09:52:02

标签: php forms xss user-input code-injection

我有一个带有CKEditor(WYSIWIG)的textarea设置,允许用户输入带有一些标记选项的信息。但是,我需要阻止潜在的黑客利用此功能并输入恶意代码。

我可以使用允许标记数组删除我不想使用PHPs strip_tags()的标记:http://php.net/manual/en/function.strip-tags.php

然而,攻击者仍然可能只是将onloadonclick等添加到允许列表中的任何HTML标记上。

那么检查此类问题的最佳选择是什么?

我最初的想法是创建这些JavaScript函数的黑名单数组,然后查看它们是否在输入的数据中出现。

听起来这是一种很好的方法,还是有更好的选择?

1 个答案:

答案 0 :(得分:2)

使用更强大的工具,例如http://htmlpurifier.org/

它允许您清理输入,添加允许的属性,标记。你将有更多的控制权。

我强烈建议您创建白名单,而不是黑名单。使用黑名单,您可以跳过一些危险的属性,而使用白名单,您可以获得所需的内容。