在PHP中清理查询字符串

我有一个带有查询字符串的网页.

PHP中我有:

$querystring=$_SERVER["QUERY_STRING"];
echo "<html><head></head><body>
<a href='index.php?$querystring'>test</a>
</body></html>";

我需要清理查询字符串吗?
如果是,如果不这样做,我该如何消毒以及可能的攻击是什么?

您应该使用htmlspecialchars($query,ENT_QUOTES)来防止任何XSS攻击.

echo "<html><head></head><body>
<a href='index.php?".htmlspecialchars($querystring, ENT_QUOTES)."'>test</a>
</body></html>"

但是,您应该列出任何参数,因为智能攻击者可以伪造查询并尝试CSRF攻击.

翻译自:https://stackoverflow.com/questions/8362010/sanitize-query-string-in-php

转载注明原文:在PHP中清理查询字符串