function filter($p){
$i=0;
return str_replace("<","<",str_replace(">",">",str_replace("&","&",$p,$i),$i),$i);
}
任何想法通过这个xss预防? 只是我的想法,而不是家庭作业
答案 0 :(得分:2)
正如问题勘误表中提出的那样,问题是你正试图在PHP中推出自己的htmlspecialchars
替代品。虽然您已经要求进行现场代码审核以修复潜在的XSS exploit,但您实际上已在应用程序中指出了有关如何处理漏洞的设计气味。
虽然您可以按照正在尝试的方式执行迭代修正或输入模式清理(注意this answer about black- and white-lists),但阅读this documentation on how to address and mitigate XSS exploits和this additional documentation会更好。它应该提供有关审核和重新架构您的应用程序的指导,以便干净,安全地处理这些威胁,而不是通过代码中的多个修复程序来缓解您的缓解策略。
祝你的申请好运!
答案 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关于大量不同的攻击。发人深省:)