我在“symphony CMS”应用程序中找到它,它非常小:
https://github.com/symphonycms/xssfilter/blob/master/extension.driver.php#L100
我正在考虑窃取它并在我自己的应用程序中使用它来清理带有HTML的字符串以供显示。你觉得它做得好吗?
ps:我知道有HTML Purifier,但那个东西很大。我宁愿选择不太宽容的东西,但我仍然希望它有效率。
我一直在针对此页面中的字符串对其进行测试:http://ha.ckers.org/xss.html。但是如果对“XSS定位器2”失败了。不知道如何使用该字符串来破解网站:)
答案 0 :(得分:8)
不,我不会用它。有许多不同的攻击都依赖于插入数据的上下文。单一功能不会涵盖所有功能。如果仔细观察,实际上只有四个测试:
// Set the patterns we'll test against
$patterns = array(
// Match any attribute starting with "on" or xmlns
'#(<[^>]+[\x00-\x20\"\'\/])(on|xmlns)[^>]*>?#iUu',
// Match javascript:, livescript:, vbscript: and mocha: protocols
'!((java|live|vb)script|mocha):(\w)*!iUu',
'#-moz-binding[\x00-\x20]*:#u',
// Match style attributes
'#(<[^>]+[\x00-\x20\"\'\/])style=[^>]*>?#iUu',
// Match unneeded tags
'#</*(applet|meta|xml|blink|link|style|script|embed|object|iframe|frame|frameset|ilayer|layer|bgsound|title|base)[^>]*>?#i'
);
没有其他测试。除了这些测试没有检测到的攻击(假阴性)之外,它还可以将一些输入错误地报告为攻击(误报)。
因此,不要试图检测XSS攻击,只需确保使用正确的清理。
答案 1 :(得分:1)
我认为它在测试字符串方面做得很好,至少根据我的测试,这是我可以说的。