通过这个过滤器进行XSS攻击?

时间:2012-04-01 21:43:53

标签: php security xss

function filter($p){
    $i=0;
    return str_replace("<","&lt;",str_replace(">","&gt;",str_replace("&","&amp;",$p,$i),$i),$i);
}

任何想法通过这个xss预防? 只是我的想法,而不是家庭作业

3 个答案:

答案 0 :(得分:2)

正如问题勘误表中提出的那样,问题是你正试图在PHP中推出自己的htmlspecialchars替代品。虽然您已经要求进行现场代码审核以修复潜在的XSS exploit,但您实际上已在应用程序中指出了有关如何处理漏洞的设计气味。

虽然您可以按照正在尝试的方式执行迭代修正或输入模式清理(注意this answer about black- and white-lists),但阅读this documentation on how to address and mitigate XSS exploitsthis additional documentation会更好。它应该提供有关审核和重新架构您的应用程序的指导,以便干净,安全地处理这些威胁,而不是通过代码中的多个修复程序来缓解您的缓解策略。

Additional helpful resource

祝你的申请好运!

答案 1 :(得分:1)

可能。例如,如果在 HTML标记内使用 <{1}},请执行以下操作:

filter

攻击者可能会通过强制<input type="text" value="<?=filter($p)?>"> 执行以下操作来执行XSS攻击:

$p

因此输出HTML变为:

something" onfocus="javascript:alert('test')

答案 2 :(得分:0)

绝不使用黑名单。始终使用白名单。 Read for example here关于大量不同的攻击。发人深省:)