PHP Markdown XSS消毒剂

PHP Markdown XSS消毒剂,php,xss,markdown,sanitization,Php,Xss,Markdown,Sanitization,我正在寻找一个简单的PHP库,它可以帮助过滤PHP降价输出中的XSS漏洞。也就是说,PHP Markdown将解析以下内容: [XSS Vulnerability](javascript:alert('xss')) 我一直在做一些阅读,在这方面我发现最好的是问题 虽然HTML净化器看起来是最好的(几乎是唯一的)解决方案,但我想知道是否有更通用的解决方案?HTML净化器似乎有点健壮,特别是对于我的需求,而且配置起来很麻烦,尽管这样做之后它看起来会工作得很好 有没有其他东西可能不那么健壮和可配置,

我正在寻找一个简单的PHP库,它可以帮助过滤PHP降价输出中的XSS漏洞。也就是说,PHP Markdown将解析以下内容:

[XSS Vulnerability](javascript:alert('xss'))
我一直在做一些阅读,在这方面我发现最好的是问题

虽然HTML净化器看起来是最好的(几乎是唯一的)解决方案,但我想知道是否有更通用的解决方案?HTML净化器似乎有点健壮,特别是对于我的需求,而且配置起来很麻烦,尽管这样做之后它看起来会工作得很好

有没有其他东西可能不那么健壮和可配置,但仍然做得很好?或者我应该埋头工作,开始尝试配置HTML净化器来满足我的需求吗

为清晰起见进行编辑:我不想偷工减料之类的事情。HTML净化器只是提供了很多细粒度的控制,对于一个简单的小项目来说,不需要太多的控制,尽管不使用任何东西也不是一个选项。当我要求一些更简单或不那么健壮的东西时,我就是从这里来的

还有最后一点,我不是在寻找使用
htmlspecialchars()
strip_tags()
或类似东西的建议。我已经禁止在PHP中嵌入HTML,并以类似的方式对其进行消毒。我正在寻找防止PHP降价输出中XSS漏洞的方法


谢谢。

我从来没有听说过任何其他的工具,除了这样做——HTML净化器确实有很好的声誉

也许它“有点健壮”并且“配置起来很痛苦”,是的;但它可能也是PHP中使用最多、测试最多的解决方案;;当你必须选择如此重要的组件时,这些都是重要的标准


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

没有太健壮的事情。“清理”HTML是很难的。为了更简单地处理它而切入的任何角落都有可能导致漏洞潜入。即使是复杂的老式HTMLPurifier,凭借其同类最佳的声誉,在过去也有多种方法可以偷袭危险的标记


但是,如果您的文本标记解决方案能够输出危险的HTML,那么它是有缺陷的,应该在IMO中予以替换。如果PHP标记允许
javascript:
URL通过,那么这是一个非常可悲的问题,基本缺陷,我不认为我会相信它能解决其他任何问题。

HTMLPurifier是一个很好的答案,也许是最强大的解决方案

也可以以相对安全的方式使用降价,但必须以正确的方式使用。有关如何安全使用降价的详细信息,请参阅。有关如何安全使用它的详细信息,请参见链接,但简短的版本是:使用最新版本、设置
安全模式
、设置
启用属性=False
非常重要。我有一个建议,但不幸的是,它被关闭并标记为与此问题重复


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

是的,我想我对它的评论是这样的,好像我不太在乎它,这是不正确的。我只是希望会有一些更一般的东西。HTML净化器为您提供了很多细粒度的控制,我在当前项目中并不真正需要这些控制。尽管不使用任何东西或一些非常基本的东西也不是一种选择。你知道吗?我的HTML净化器的问题是它给了你对它自身的每一个方面的大量细粒度控制。我不想偷工减料,只是在配置方面要简单一点,因为对于我正在处理的一个小项目,我不需要那种细粒度的控制。尽管什么都不使用也不是一种选择。就PHP标记而言,它是我所知的唯一一个PHP标记实现,其目的是将标记解析为有效的HTML。该链接是有效的HTML,尽管它可能有害。它不宣传安全或安全是目标。