代码之家  ›  专栏  ›  技术社区  ›  anomareh

PHP Markdown XSS消毒剂

  •  5
  • anomareh  · 技术社区  · 15 年前

    我正在寻找一个简单的PHP库,它可以帮助过滤PHP标记输出中的XSS漏洞。即,php markdown将解析以下内容:

    [XSS Vulnerability](javascript:alert('xss'))
    

    我一直在做一些阅读,在这个问题上我发现最好的是 this 问题。

    虽然HTML净化器看起来是最好的( 几乎只有 )解决方案我想知道是否有什么更一般的?HTML净化器似乎有点强大,特别是对于我的需求,以及配置的痛苦,尽管看起来这样做后工作得很好。

    是否还有其他不那么健壮和可配置,但仍能做好的事情?或者我应该深入研究并开始尝试为我的需要配置HTML净化器吗?

    为清晰起见编辑: 我不想偷工减料。HTML净化器提供了很多细粒度的控制,对于一个简单的小项目来说,不需要太多的控制,尽管不使用任何东西也不是一个选择。这就是我要东西的时候的来历 简单的 拟金盏菊 .

    最后一点,我是 不是 正在查找要使用的建议 htmlspecialchars() , strip_tags() 或者其他类似的事情。我已经不允许在php markdown-extra中嵌入html,方法是用类似的方式对其进行清理。我在想办法 防止PHP降价输出中的XSS漏洞 .

    谢谢。

    4 回复  |  直到 12 年前
        1
  •  6
  •   Pascal MARTIN    15 年前

    我从没听说过其他工具 HTML Purifier 这样做——HTML净化器确实有很好的声誉。

    也许是” 有点鲁棒性 “和” 配置的痛苦 “,是的;但它可能也是PHP中最常用和测试最多的解决方案;当您必须选择如此重要的组件时,这些都是重要的标准。

    即使这意味着 投资 半天时间来配置它,如果我在你的情况下,我可能会选择HTML净化器。

        2
  •  3
  •   bobince    15 年前

    没有什么比这更健壮的了。_156;消毒_157;HTML是 坚硬的 . 任何为了更简单地处理它而抄近路的地方都可能导致漏洞的潜入。即使是复杂的旧HTML净化器,以其最佳的声誉,已经有多种方式偷偷通过危险的标记在过去!

    但是,如果您的文本标记解决方案能够输出危险的HTML,那么它是有缺陷的,应该替换为IMO。 javascript: 通过那个网址,这是一个非常可悲的,基本的缺陷,我不认为我会相信它得到任何其他正确的东西。

        3
  •  1
  •   Community CDub    8 年前

    我有个建议,我 asked on SO to find out if it would work 但不幸的是,它被关闭并标记为此问题的副本。

    我的建议是修改Markdown的代码,只允许从链接和图像源开始 http:// , https:// ftp:// 它涵盖了所有需要的通用协议。如果链接不是从这些链接中的一个开始的,那么它应该在输出中保持不变。

        4
  •  0
  •   Community CDub    8 年前

    HTML净化器是一个很好的答案,也许是最强大的解决方案。

    也可以以相对安全的方式使用降价,但您必须以正确的方式使用降价。有关如何安全使用降价的详细信息,请查看 here . 有关如何安全使用它的详细信息,请参见链接,但短版本是:使用最新版本、设置 safe_mode 并设置 enable_attributes=False .