gpt4 book ai didi

php - $_SERVER 容易被用户更改

转载 作者:太空宇宙 更新时间:2023-11-03 14:14:23 26 4
gpt4 key购买 nike

我真的很想使用以下问题的答案:How can I force users to access my page over HTTPS instead of HTTP?

但我一直认为全局 $_SERVER 变量很容易被用户更改,因此不应依赖。是真的吗?

if($_SERVER["HTTPS"] != "on")
{
header("Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
exit();
}

如果它容易改变,为什么那么多人推荐这个答案。

最佳答案

$_SERVER 中的值是由托管 Web 服务器设置的环境变量。这取决于 HTTPS 环境变量设置的准确程度,以说明它是否“安全”;但通常在 Apache 中,当且仅当它为 SSL 连接提供服务时,该值才由 SSL 模块设置。据任何人(或至少我)所知,用户无法在请求中发送任何内容来更改此值。用户应该只能发送 HTTP header ,这些 header 都将以 $_SERVER['HTTP_*'] 值结束,而不是普通的 'HTTPS'

因此,除非您的 Web 服务器中存在一些未知错误,这些错误允许用户在请求中发送信息,从而诱使服务器错误地设置 HTTPS 环境变量,否则它是非常安全的。

关于php - $_SERVER 容易被用户更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23510712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com