清理 GET 请求和扫描结果

Sanitizing GET Request and result of scan

我正在尝试清理我的 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>

我的页面上有很多这样的 link,当我第一次 运行 页面时,跨站点脚本很容易被破坏,因为 我没有清理 GET 请求。所以在页面的顶部,我放了

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

最初,这似乎行得通。但是我最近 运行 进行了另一次扫描,并且像上面那样的每个 link 都显示为高值。 细节看起来像这样

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=

这不是显示经过消毒的 url 吗?这是我需要修复的东西还是 false/negative?

谢谢

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

例如:

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