如何通过 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 确定页面是不是安全? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
确定页面在 JavaScript 中是不是有效 - ASP.NET
如何判断页面是不是已跳转到 javascript 中的锚点 (#)?