可能是一个类似的问题而不是其他人,但到目前为止我找不到任何能回答我问题的问题。
情况:用户在我的网站http://www.example.com上。我即将将其重定向到我的其他网站:https://secure.example.org
在重定向发生之前,我想检查客户端是否确实能够成功建立安全连接。 (在重定向期间服务器端,或者在重定向之前使用AJAX请求或者用于此目的的任何东西)。
这有可能吗,怎么做?对如何做的任何偏好?
答案 0 :(得分:1)
如果浏览器无法安全地连接到https://secure.example.org,则不会。
您始终可以发出AJAX请求,但成功或失败并不能说明实际请求的成功与否。 (因为它是跨域的,你必须添加CORS标题)。
但您当前的配置设计不安全:因为您的第一页使用了http,攻击者可以通过他想要的任何内容替换您的安全页面链接。
如果您将https添加到您的第一页,那么您没有其他任何操作,浏览器将为您进行所有安全检查。
您也应该研究HSTS,以提高安全性。
如果可能,要重定向到https,请在http网页的开头添加一个带有https网址的javascript文件,其中包含重定向到https网站:用户只有在支持https时才会重定向。 (你也可以使用HSTS和那种方法)
答案 1 :(得分:0)
尝试这样的事情:
if(empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == "off"){
$redirect = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
标题('HTTP / 1.1 301永久移动'); 标题('Location:'。$ redirect);
}