如何通过PHP避免XSS攻击或清理$ _GET的KEY参数

时间:2014-02-14 08:01:20

标签: php get xss

我刚刚测试了下面的链接,对IE11会有XXS攻击。

http://example.net/test/?"*alert(1)*"

我找到了许多清理url参数的方法。 大多数解决方案都是清理$ _GET的值而不是$ _GET的关键字,就像这个url一样 Sanitize $_GET parameters to avoid XSS and other attacks

但是当我print_r我的$ _GET是Array ( ["*alert(1)*"] => )

时,我提供的上面的网址

我可以知道如何避免这种攻击吗?他们使用$ _GET的密钥而不是值进行攻击。

非常感谢。

2 个答案:

答案 0 :(得分:1)

打印恶意代码时会发生XSS攻击,但代码应根据HTML和JavaScript规则执行。例如,如果没有正确编写,打印*alert(1)*将不会发出任何警报(不会被执行)。然而,

<script>alert(1)</script>

<div onclick="alert(1);"...>

将被执行。

有关详细信息,请参阅XSS (Cross Site Scripting) Prevention Cheat Sheet

答案 1 :(得分:0)

创建我的解决方案,我需要重写HTACCESS以从http调用重定向到https。因此,在https环境中,当他们输入网址时,它会阻止xss攻击。