2

我刚刚将我的网站从 http 移动到 https 并且 IE-9 开始在主页上显示非安全内容警告。这个警告是可以理解的,因为我有一个对 googleapi 的 http 调用来获取 jquery 脚本。但是当我登录并进入内页时,尽管大多数图像都是通过 http 协议来自其他服务器,但 IE 没有发出警告。所以问题是:通过 https 访问站点时,通过 http 获取图像是否可以?只有css和js重要吗?还是我必须通过 HTTPS 获取所有数据?如果是这样,我的情况如何合理(通过 http 从 https 页面上的其他服务器获取图像而没有警告)?

4

2 回答 2

3

如果您通过 HTTP 加载 CSS 和 JS,那么攻击者可以注入可执行代码。不幸的是,IE 会在 CSS 中执行 JavaScript。通过 HTTP 从同一域加载图像的问题是浏览器可能会以纯文本形式溢出会话 id,这是违反OWASP a9的。

于 2012-07-14T14:48:23.877 回答
2

您可以在所有 url 上使用协议相对 URL以避免在 IE 中出现此问题。

基本上,不是通过使用协议的完整路径链接到 js/image/css,而是通过省略协议位并仅使用双斜杠//来链接到它。

这将具有上述所有链接从父页面继承协议的效果。

当然,这取决于您在提供不同文件形式的域上是否拥有有效的 SSL 证书。

还要注意的另一件事是,使用数据 URI 完成的页面或 CSS 中的图像也可能导致 IE 中的混合内容警告。

要找出导致问题的文件,我建议使用Fiddler

还有另一个 SO 用户 Eric Law 写道:

从http://www.bayden.com/dl/scriptfreesetup.exe安装它,您将获得不同的混合内容提示,其中显示页面上第一个不安全资源的确切 URL。该工具基本上是一个原型,你应该在完成后卸载它。它适用于 IE8,您应该以管理员身份安装它。

于 2012-07-15T02:12:20.557 回答