页面抛出TLS错误而不是加载

时间:2016-10-20 14:36:18

标签: javascript php ssl preload

我已经研究了这个,但无济于事。我内部有一个页面需要TLS 1.1或1.2。如果它们没有打开,则会出现错误:

  

此页面无法显示

     

在高级设置中打开TLS 1.0,TLS 1.1和TLS 1.2,然后尝试   再次连接到https://SITEADDRESS。如果这个错误   持续存在,此站点可能使用不受支持的协议   或密码套件,如RC4(详情链接),但不是   认为安全。请与您的网站管理员联系。

显然,修复是在IE中打开那些密码套件。然而,我想要放入页面的是检查,从网站预加载某些内容,确保它可见/可读/可加载/无论如何,然后允许用户前进,或者,如果不管它是什么我正在检查无法呈现/读取/等,将它们引导到其他地方。

所以我试过的是做一个SAME地址的PHP file_get_contents

<?php
$contents = file_get_contents('https://SITEADDRESS');
echo "<pre>";
var_dump($contents);
echo "</pre>";
?>

然而,它最终能够拉出页面代码并将其转储出来?!?!!?这意味着它可以访问该页面,但是,我知道它不能,因为我在尝试正常加载时遇到了TLS错误。

问题是,在将用户转发到可能无法呈现的页面之前,如何预先检查带有TLS的URL?

2 个答案:

答案 0 :(得分:1)

看来你正在混合服务器端和客户端。

假设 PHP正在运行服务器端,它肯定不会受到IE的影响(我假设正在运行客户端)选择密码。

如果这没有意义,请告诉我,我会进一步发表言论......

如果我理解正确,您希望自己的逻辑在客户端(IE)上运行,以检测客户端(IE)是否可以访问该URL。 / p>

您可以尝试通过Javascript(例如https://api.jquery.com/jquery.get/

触发异步请求

YMMV,我不确定IE是否会将TLS错误传递给您的Javascript代码。假设确实如此,您应该能够至少处理任何错误事件(来自Javascript HTTP请求)并假设客户端不应该尝试继续。

答案 1 :(得分:0)

将此文件加载到头部......

<script type="text/javascript" src="https://SITEADDRESS/api/start_session.js"></script>

然后检查变量BG的存在,其中BG是加载文件的var。如果BG未定义(不存在)则会阻止对外部域的访问,因此显示/隐藏DIV,因此用户永远不会被发送到错误的站点!

window.onload = function() {
    if (typeof BG !== 'undefined') {
        document.getElementById('test1').style.display = 'block'; 
        document.getElementById('test2').style.display = 'none'; 
    } else {
        document.getElementById('test1').style.display = 'none'; 
        document.getElementById('test2').style.display = 'block'; 
    }
};