我想在我的网站上提供HTML编辑器,但不想让自己打开xss或其他允许用户生成HTML的攻击。</ p>
这与Stack Overflow非常相似。如何在这里检查/清理HTML以便样式信息仍然存在,而其他更危险的东西(如javascript,iframe等)被保留下来?
是否有任何库(最好是PHP)已经这样做了?
答案 0 :(得分:3)
PHP有一个函数strip_tags
,可以从字符串中删除HTML和PHP标记,并允许您指定某些允许的标记。但正如@webarto
所述,有libraries可以做得更好。
来自PHP Manual。
答案 1 :(得分:0)
您可以使用
strip_tags($yourData,"<a><p><div><i>") // more tags you want to keep;
如果您使用SQL也使用
mysql_real_escape_string($data);
这真的是你不需要注射的全部。请记住,当使用mySQL真正的转义时,你需要使用strip slashes来删除它们。
以下是strip tags的文档和mysql escape的文档。
答案 2 :(得分:0)
如果您希望允许某些(X)HTML并仅限制被视为不安全的标签,您可以使用类似KSES的内容。 Wordpress使用这样的解决方案。
答案 3 :(得分:-1)
在Whymarrh帖子的附录中,建议让代码工作在您网站的子文件夹中进行,并自动更改任何包含“..”或“http://”或任何mysql命令的代码。