首页 文章

如何过滤掉像SO那样的危险HTML? [重复]

提问于
浏览
4

这个问题在这里已有答案:

我想在我的网站上提供一个HTML编辑器,但是不想让自己打开xss或其他允许用户生成HTML的攻击 .

这与Stack Overflow的功能非常相似 . 如何在这里检查/清理HTML以便样式信息仍然存在,而其他更危险的东西(如javascript,iframes等)被保留了?

是否有任何库(最好是PHP)已经这样做了?

4 回答

  • 3

    PHP有一个函数 strip_tags ,它从字符串中删除HTML和PHP标记,并允许您指定某些允许的标记 . 但正如 @webarto 所述,有libraries做得更好 .

    来自PHP Manual .

  • 0

    你可以用

    strip_tags($yourData,"<a><p><div><i>") // more tags you want to keep;
    

    如果您使用SQL也使用

    mysql_real_escape_string($data);
    

    这真的是你不需要注射的全部 . 请记住,当使用mySQL真正的转义时,你需要使用_2595900来删除它们 .

    以下是strip tags的文档和mysql escape的文档 .

  • 0

    如果您希望允许某些(X)HTML并仅限制被视为不安全的标签,您可以使用类似KSES的内容 . Wordpress使用这样的解决方案 .

    http://sourceforge.net/projects/kses/

  • -1

    在Whymarrh帖子的附录中,建议将代码工作发生在站点的子文件夹中,并自动更改具有“..”或“http://”或任何mysql命令的任何代码 .

相关问题