清理GET请求和扫描结果

时间:2016-03-14 19:26:56

标签: php xss sanitization

我正在尝试清理我的GET变量,但由于某种原因,Accuntrix仍在抱怨。

所以我访问了一个页面,URL包含参数。我在页面之间传递这些参数。要做到这一点我做 类似于以下内容

<a class="navbar-brand" href="https://someDomain/someFolder/someFile.php?WT.var1=<?php echo $_GET['WT_var1']; ?>&var2=<?php echo $_GET['var2']; ?>&var3=<?php echo $_GET['var3']; ?>&var4=<?php echo $_GET['var4']; ?>" title="logo"><img src="logo.png"></a>

我在页面上有很多像这样的链接,当我第一次运行页面时,它可以跨站点脚本,因为 我没有消除GET请求。所以在页面顶部,我把

<?php
    $_GET['WT_var1'] = htmlspecialchars($_GET['WT_var1']);
    $_GET['var2'] = htmlspecialchars($_GET['var2']);
    $_GET['var3'] = htmlspecialchars($_GET['var3']);
    $_GET['var4'] = htmlspecialchars($_GET['var4']);
?>

最初,这似乎有效。但是我最近又进行了另一次扫描,并且像上面这样的每一个链接都显示为高。 细节看起来像这样

URL encoded GET input WT.var1 was set to 1}body{acu:Expre/**/SSion(prompt(926954))}
The input is reflected inside a text element.

该漏洞看起来像这样

/someFolder/someFile.php?WT.var1=1%7dbody%7bacu:Expre/**/SSion(prompt(941830))%7d&var2=&var3=&var4=

虽然没有显示消毒的网址吗?这是我需要解决的问题还是虚假/消极的?

由于

1 个答案:

答案 0 :(得分:2)

htmlspecialchars()将您的变量编码为html页面中的内容输出。如果您需要通过网址传递变量,则需要urlencode(()

例如:

...someFolder/someFile.php?WT.var1=<?php echo urlencode($_GET['WT_var1']); ?>&var2...
相关问题