如何通过 JavaScript 确定页面是不是安全? [复制]

Posted

技术标签:

【中文标题】如何通过 JavaScript 确定页面是不是安全? [复制]【英文标题】:How do I determine whether a page is secure via JavaScript? [duplicate]如何通过 JavaScript 确定页面是否安全? [复制] 【发布时间】:2010-09-29 17:05:34 【问题描述】:

我想知道该页面是使用 javascript 通过 http 还是 https 访问的。是否有某种 isSecure() 方法,或者我应该以某种方式从 URL 中解析出来?

【问题讨论】:

【参考方案1】:

location.protocol 应该为你做。

(如:

if (location.protocol === 'https:') 
    // page is secure

)

【讨论】:

这似乎覆盖了主页,所有额外的负载(谷歌分析、广告、外部图片、javascript等)呢? 不要依赖这个!作为演示访问macinn.es 并消除有关该站点不安全的任何警告,然后打开控制台并运行location.protocol。即使浏览器刚刚告诉您它不安全,它也会返回“https:”。 @NathanMacInnes OP 可能希望他的服务器中的某些脚本在客户端浏览器中运行,前提是连接是 https。当你说“不要依赖这个”时,它并没有给你太多的可信度,然后又没有提出更好的方法。我非常希望堆栈上的人们不要发布所有这些类型的 cmets。没用。 @user3635998,“不要依赖这个”对我来说有点夸张,但它仍然是一个有效的警告。【参考方案2】:

你应该可以检查document.location.protocol看看它是“http:”还是“https:”

【讨论】:

【参考方案3】:

虽然 location.protocol 应该像 Peter Stone 提到的那样为你做这件事,但你不应该依赖 Javascript 来获得任何真正的安全性等。

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

【讨论】:

是的,如果您需要 SSL 以确保安全,请检查服务器端(如果使用 SSL,Apache 会设置 HTTPS 环境变量)。如果您只需要知道它是哪一个(即使用安全的 Google Analytics 来避免“部分安全”警告),就可以了。 我只需要知道它是什么以避免“IE 中的非安全元素警告”。在我们下一次发布之前,这是一种权宜之计。

以上是关于如何通过 JavaScript 确定页面是不是安全? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何确定是不是通过 MVC 启用了 JavaScript

javascript模拟点击a标签

确定页面在 JavaScript 中是不是有效 - ASP.NET

如何判断页面是不是已跳转到 javascript 中的锚点 (#)?

PHP:我如何通过他/她的 IP 地址确定某人是不是来自美国?

如何确定视图是不是已渲染? javascript