如何通过JavaScript确定页面是否安全?

如何通过JavaScript确定页面是否安全?,javascript,https,Javascript,Https,我想知道是否正在使用JavaScript通过http或https访问该页面。是否存在某种isSecure()方法,或者我是否应该以某种方式将其从URL中解析出来?location.protocol应该为您解决这个问题 (如: )您应该能够检查document.location.protocol以查看它是“http:”还是“https:,而location.protocol应该像Peter Stone提到的那样为您做,但您不应该依赖Javascript来实现任何真正的安全性,等等 我认为如果您使用

我想知道是否正在使用JavaScript通过http或https访问该页面。是否存在某种isSecure()方法,或者我是否应该以某种方式将其从URL中解析出来?

location.protocol
应该为您解决这个问题

(如:


)

您应该能够检查
document.location.protocol
以查看它是“http:”还是“https:

,而location.protocol应该像Peter Stone提到的那样为您做,但您不应该依赖Javascript来实现任何真正的安全性,等等


我认为如果您使用SSL,location.protocol的值应该是“https:”。

是的,如果您需要SSL来保证安全性,请检查服务器端(如果使用SSL,Apache会设置https环境变量)。如果你只需要知道它是哪一个(即,使用安全谷歌分析来避免“部分安全”警告),这就可以了。我只需要知道它是哪一个来避免“IE中的非安全元素警告”。这是一个权宜之计,直到我们的下一个版本。这似乎涵盖了主页,那么所有额外的负载(谷歌分析、广告、外部图像、javascript等)都不依赖于此!作为演示,请访问并消除有关站点不安全的任何警告,然后打开控制台并运行
location.protocol
。它返回“https:”,即使浏览器刚刚告诉您它不安全。@NathanMacInnes OP可能希望服务器中的某些脚本在客户端浏览器中运行,如果连接是https。当你说“不要依赖它”,然后又没有提出更好的方法时,它不会给你多少可信度。我真的希望stack上的人不要发表这些评论。这没有什么帮助。@user3635998,“不要依赖这个”对我来说有点夸张,但它仍然是一个有效的警告。
if (location.protocol === 'https:') {
    // page is secure
}