这个功能是否足以进行xss检测?

the*_*cat 6 php string xss

我发现它在"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"失败了.不知道怎么可以使用该字符串来破解网站:)

Gum*_*mbo 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'
);
Run Code Online (Sandbox Code Playgroud)

没有其他测试.除了这些测试未检测到的攻击(假阴性)之外,它还可能错误地将某些输入报告为攻击(误报).

因此,不要试图检测XSS攻击,只需确保使用适当的消毒.