在禁止 HTML 标记后,(PHP)markdown 中的主要 XSS 漏洞似乎是它允许这样的链接:
[foo](javascript:alert('xss'))
这将变成
<a href="javascript:alert('xss')">foo</a>
这同样适用于<img src="">
。
我目前正在网站上开发一个非常基本的问答部分,并且我对问题和答案使用降价。我可以非常自信地说,本网站上唯一合法使用的链接将是http://
或https://
链接。
如果我修改了用于处理链接的正则表达式降价,并且只允许以字符开头的 url http
,那会阻止 XSS 攻击吗?
PS这不是我当前问题的一部分,但如果有好心人告诉我如何修改有问题的令人沮丧的复杂正则表达式,我将非常感激。
编辑:我已经阅读了PHP Markdown XSS Sanitizer,我问这个问题的唯一原因是因为我正在考虑另一种方法。我的问题不是“如何清理降价输出以防止 XSS ”,而是“这种方法会防止 XSS 攻击”吗?因此,它不是重复的,而是另一种选择。另外,这个问题得到支持的事实是否表明,即使存在较早的问题,至少也有一些人想知道与我相同的事情?