我将在我的网站上加入GestPay付款。它有一些browser requirements
买方的浏览器必须支持TSL1.1协议或最新的
如何以编程方式检查访问我网站的浏览器是否达到要求?
在this answer中,建议使用外部服务(ssllabs.com,howsmyssl.com),但我想要一个自托管解决方案,没有外部依赖,主要原因是安全问题。
在this article salesforce.com中使用Chrome开发工具公开test page,我尝试禁用javascript,测试也是如此。所以我想这是服务器端......
更新
理想情况下,我想允许浏览器即使没有TSL1.1支持,然后检测浏览器是否支持TSL1.1,如果不支持,我将不会显示GestPay支付功能。
答案 0 :(得分:0)
经过一段时间的研究,这就是我所理解的:
在这个caniuse表中是listet browsers not supporting tls1.1
当浏览器询问https页面时,它会发送支持的加密协议列表,服务器会选择最佳的协议。
如果服务器不允许协议小于TLS1.1,则浏览器根本不会看到该页面,例如这是IE9的行为:
在javascript中,无法访问https证书信息。
无法对此进行特征检测。
HTTP Headers PHP $_SERVER信息不可用,opensource HowsMySsl server超全球。
所以你可以自己运行user-agent sniffing is bad(但对我来说太过分了)
所以也许我会使用用户代理嗅探来确定浏览器是否不支持TLS1.1,即使running
我希望这会帮助其他人!