检查重定向之前是否可以建立安全连接

时间:2016-04-25 20:54:32

标签: https

可能是一个类似的问题而不是其他人,但到目前为止我找不到任何能回答我问题的问题。

情况:用户在我的网站http://www.example.com上。我即将将其重定向到我的其他网站:https://secure.example.org

在重定向发生之前,我想检查客户端是否确实能够成功建立安全连接。 (在重定向期间服务器端,或者在重定向之前使用AJAX请求或者用于此目的的任何东西)。

这有可能吗,怎么做?对如何做的任何偏好?

2 个答案:

答案 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);

}