我已经研究了这个,但无济于事。我内部有一个页面需要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?
答案 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';
}
};