如何在客户端使用 JavaScript 来检测页面是不是已加密?
Posted
技术标签:
【中文标题】如何在客户端使用 JavaScript 来检测页面是不是已加密?【英文标题】:How can I use JavaScript on the client side to detect if the page was encrypted?如何在客户端使用 JavaScript 来检测页面是否已加密? 【发布时间】:2010-09-21 21:34:32 【问题描述】:是否可以在客户端检测用户是否在使用加密页面?
换一种说法——我想知道当前页面的URL是以http还是https开头的。
【问题讨论】:
【参考方案1】:使用window.location.protocol
判断是否为https:
function isSecure()
return window.location.protocol == 'https:';
如果您没有本地范围的位置,您也可以省略指定“窗口”。
function isSecure()
return location.protocol == 'https:';
【讨论】:
窗口。是全局范围,因此不需要,只是一个旁注。 不知道.protocol,比我的解决方案简单 jishi:这是一个风格问题,可以说是“窗口”。让房产的来源更加清晰。可以想象,您还可以有一个名为“location”的局部/闭包变量,在这种情况下,对全局的直接访问将被隐藏。 我喜欢完全指定变量的清晰性,但我可以看到其他人可能会在哪里使用速记并使用全局范围。 This method 应尽可能使用,因为当证书出现问题时,此答案是不准确的。【参考方案2】:正如谷歌分析告诉我的那样:
if ("https:" == document.location.protocol)
/* secure */
else
/* unsecure */
【讨论】:
【参考方案3】:最新浏览器的第二种方法:
var secure = window.isSecureContext;
或者直接获取 isSecureContext:
if (isSecureContext)
...
更多:https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts#Feature_detection#Feature_detection
【讨论】:
来自链接页面的警告:“本地交付的文件,例如http://localhost
和 file://
路径被视为已安全交付。”以上是关于如何在客户端使用 JavaScript 来检测页面是不是已加密?的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有窗口移动的情况下使用JavaScript来检测div的滚动距离?