Google chrome 在我的 yii2 应用程序中从 https 重定向到 http
Google chrome redirect from https to http in my yii2 application
从昨天开始,googlechrome 出现了问题。如果我提交表单,chrome 将我从 https 重定向到 http。
我正在使用 yii2 应用程序函数 $this->redirect()
你知道怎么解决吗?
它只发生在 google chrome 从昨天开始。
非常感谢。
我不认为 Chrome 是问题所在(或者也许是,但您必须针对这些情况在服务器端做一些事情)。这似乎与您的服务器配置有关。
最后,您在 HTTPS 中打开表单,提交它,然后在服务器上进行重定向。
因此,您必须找出如何强制使用 HTTPS,但从服务器上,您不能将该责任委托给浏览器(不完全)。
勾选这个post"How to force your site to redirect to https"
我不知道,也许我在这里遗漏了什么。
如果您可以详细了解该重定向中发生的情况,请。
编辑
事实证明,如果有办法强制浏览器使用HTTPS,那就是HSTS。
感谢 Michal Hynčica。
看看这个 post What Is HSTS and How Do I Implement It?
关于$_SERVER['HTTPS']='on'
这是某种黑客攻击吗?这个环境变量不是应该自动取值吗?
最后这里有问题,因为$_SERVER['HTTPS'] = 'off',或者根本没有设置,说明请求不是通过HTTPS发出的,或者也可能是服务器在反向代理或负载平衡器后面。
我觉得这是在忽悠Yii,具体有以下几个功能:
web/Request.php
public function getIsSecureConnection()
{
if (isset($_SERVER['HTTPS']) && (strcasecmp($_SERVER['HTTPS'], 'on') === 0 || $_SERVER['HTTPS'] == 1)) {
return true;
}
// Rest of the function
}
ServerRequest.php
public static function getUriFromGlobals()
{
$uri = new Uri('');
$uri = $uri->withScheme(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' ? 'https' : 'http');
// Rest of the function
}
在 index.php
的顶部添加:
$_SERVER['HTTPS']='on';
Issue 1158169: Form is not Secure issue on new version fo chrome
如果您的负载均衡器和服务器之间的重定向流量是 http,请确保卸载的服务器已启用 ssl
从昨天开始,googlechrome 出现了问题。如果我提交表单,chrome 将我从 https 重定向到 http。
我正在使用 yii2 应用程序函数 $this->redirect()
你知道怎么解决吗?
它只发生在 google chrome 从昨天开始。
非常感谢。
我不认为 Chrome 是问题所在(或者也许是,但您必须针对这些情况在服务器端做一些事情)。这似乎与您的服务器配置有关。 最后,您在 HTTPS 中打开表单,提交它,然后在服务器上进行重定向。
因此,您必须找出如何强制使用 HTTPS,但从服务器上,您不能将该责任委托给浏览器(不完全)。
勾选这个post"How to force your site to redirect to https"
我不知道,也许我在这里遗漏了什么。 如果您可以详细了解该重定向中发生的情况,请。
编辑
事实证明,如果有办法强制浏览器使用HTTPS,那就是HSTS。 感谢 Michal Hynčica。
看看这个 post What Is HSTS and How Do I Implement It?
关于$_SERVER['HTTPS']='on'
这是某种黑客攻击吗?这个环境变量不是应该自动取值吗?
最后这里有问题,因为$_SERVER['HTTPS'] = 'off',或者根本没有设置,说明请求不是通过HTTPS发出的,或者也可能是服务器在反向代理或负载平衡器后面。
我觉得这是在忽悠Yii,具体有以下几个功能:
web/Request.php
public function getIsSecureConnection()
{
if (isset($_SERVER['HTTPS']) && (strcasecmp($_SERVER['HTTPS'], 'on') === 0 || $_SERVER['HTTPS'] == 1)) {
return true;
}
// Rest of the function
}
ServerRequest.php
public static function getUriFromGlobals()
{
$uri = new Uri('');
$uri = $uri->withScheme(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' ? 'https' : 'http');
// Rest of the function
}
在 index.php
的顶部添加:
$_SERVER['HTTPS']='on';
Issue 1158169: Form is not Secure issue on new version fo chrome
如果您的负载均衡器和服务器之间的重定向流量是 http,请确保卸载的服务器已启用 ssl