我是否必须 urldecode() 来自 GET 变量的 urlencoded URL?
Do I have to urldecode() a urlencoded URL from a GET variable?
如果我在 GET 变量中收到一个 url 编码的 URL,并从 PHP 文件中读取它,是否已经从脚本的角度对其进行了解码?
在我的本地机器上,这工作正常; URL 似乎已经被服务器解码,或者这只是 HTTP 协议。
正在做:
echo '<a href="' . $_GET['link'] . '">link</a>';
没有urldecode($_GET['link'])
将输出一个有效的("decoded")link。
但是这个解决方案是否易于迁移且可靠?它取决于 PHP 版本还是 Apache 版本?
The GET variables are passed through urldecode().
它们已经被解码了。你不应该再解码它们。
另一方面,您应该使用 htmlspecialchars
为 HTML 编码它们,因为回显 URL 输入直接进入页面会使您容易受到 XSS 攻击。
如果我在 GET 变量中收到一个 url 编码的 URL,并从 PHP 文件中读取它,是否已经从脚本的角度对其进行了解码?
在我的本地机器上,这工作正常; URL 似乎已经被服务器解码,或者这只是 HTTP 协议。
正在做:
echo '<a href="' . $_GET['link'] . '">link</a>';
没有urldecode($_GET['link'])
将输出一个有效的("decoded")link。
但是这个解决方案是否易于迁移且可靠?它取决于 PHP 版本还是 Apache 版本?
The GET variables are passed through urldecode().
它们已经被解码了。你不应该再解码它们。
另一方面,您应该使用 htmlspecialchars
为 HTML 编码它们,因为回显 URL 输入直接进入页面会使您容易受到 XSS 攻击。