为什么我突然在Firefox中出现“阻塞加载混合活动内容”的问题?
今天早上,我的Firefox浏览器升级到最新版本(从22到23)后,我的后台(网站)的一些关键方面停止工作。
看着Firebug日志,报告了以下错误:
Blocked loading mixed active content "ui/1.8.10/themes/smoothness/jquery-ui.css" Blocked loading mixed active content "http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"`
以及上述两者中的后者导致的其他错误未被加载。
以上是什么意思,我该如何解决?
我发现这个博客文章清除了一些东西。 引用最相关的位:
混合活动内容现在在Firefox 23中默认被阻止!
什么是混合内容?
当用户访问通过HTTP提供的页面时,他们的连接对于窃听和中间人(MITM)攻击是开放的。 当用户访问通过HTTPS提供的页面时,他们与Web服务器的连接将通过SSL进行身份验证和加密,从而保护他们免受窃听者和中间人攻击。但是,如果HTTPS页面包含HTTP内容,则即使通过HTTPS提供主页面,攻击者也可以读取或修改HTTP部分。 当HTTPS页面包含HTTP内容时,我们称该内容为“混合”。 用户访问的网页只是部分加密的,因为有些内容是通过HTTP加密的。 混合内容阻止程序阻止HTTPS页面上的某些HTTP请求。
就我而言,这个决议只是为了确保jquery
包含如下(注意删除协议):
<link rel="stylesheet" href="//code.jquery.com/ui/1.8.10/themes/smoothness/jquery-ui.css" type="text/css"> <script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"></script>
请注意,临时的“修复”是点击地址栏左上角的“盾牌”图标,并选择“禁用此页面上的保护”,尽管由于显而易见的原因,建议不要这样做。
更新: 这个来自Firefox(Mozilla)支持页面的链接在解释什么是混合内容方面也是有用的,并且如上所述,实际上确实提供了如何显示页面的细节:
大多数网站将继续正常工作,而无需采取任何行动。
如果您需要显示混合内容,则可以轻松完成:
点击地址栏中的盾牌图标Mixed Content Shield,然后从下拉菜单中选择“禁用此页面上的保护”。
地址栏中的图标将更改为橙色警告三角形警告标识图标,以提醒您不安全的内容正在显示。
要恢复之前的操作(重新阻止混合内容),只需重新加载页面即可。
这意味着你从https调用http。 您可以在脚本标记中使用src="script.html"
,它会自动检测。
或者你可以在你的src
使用https,即使你将它发布到一个http页面。 这将避免评论中提到的潜在问题。
如果没有白名单功能,则必须进行“全部”或“无”选择。 您可以完全禁用混合内容阻止。
没有选择
您将需要永久禁用当前活动配置文件的混合内容阻止。
在“棒棒”中输入“about:config”。 如果这是您第一次获得“这可能使您的保修无效” 信息。
是的,你会小心。 是的,你答应!
找到security.mixed_content.block_active_content 。 将其值设置为false 。
所有的选择
iDevelApp的答案很棒。
如果您通过AJAX使用内部服务,请确保url指向https,这为我清除了错误。
初始AJAX网址:“ http://XXXXXX.com/Core.svc/ ”+ ApiName
更正的AJAX URL:“ https://XXXXXX.com/Core.svc/ ”+ ApiName,
由于安全性而给出了错误。 为此,请在网址中使用“https”而不是“http”。
例如 :
"ui/1.8.10/themes/smoothness/jquery-ui.css" "https://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"
我有这个相同的问题,因为我买了一个CSS模板,它通过http://whatever.js.com/javascript.js
抓取了一个JavaScript的外部JavaScript文件。 我去了我的浏览器中的页面,然后将其更改为https://whatever...
使用SSL和它的工作,所以在我的HTML JavaScript标记,我只是改变了URL使用https
而不是http
,它的工作。
要在https协议上强制重定向,您还可以在根文件夹的.htaccess中添加此指令
RewriteEngine on RewriteCond %{REQUEST_SCHEME} =http RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
我发现,如果您在使用http://www.example.com之类的内容包含或混合您的网页时遇到问题,您可以通过将// www .example.com改为
当我的网站从http转到https时,我面临同样的问题。 我们添加了所有将http重定向到https的请求的规则。
您需要为站点间请求添加重定向规则,但是您必须删除外部js / css的重定向规则。
如果您的应用程序服务器是weblogic,那么请确保WLProxySSL ON条目存在(并且确保不应注释它)在webserver的conf目录中的weblogic.conf文件中。 然后重新启动Web服务器,它将工作。