Mixed Content: 资源加载失败

news/2024/7/19 14:11:44 标签: js

文章目录

      • 原因
      • 特点
        • Passsive mixed content
        • Active mixed content
      • 解决

原因

当一个https的网站,发出了http的请求,就会出现以下的情况。

谷歌浏览器中

The page at 'https://active-mixed-content.glitch.me/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://active-mixed-content.glitch.me/xmlhttprequest-data.js'. This request has been blocked; the content must be served over HTTPS

火狐中

已阻止载入混合活动内容“http://active-mixed-content.glitch.me/insecure-styles.css”

特点

Passsive mixed content

值得注意的是,未必所有的mixed content都会加载失败,对于以下的资源,仍旧是可以成功加载的。

这些资源包括:

  • 图片
  • 视频
  • 音频

如下图:这些资源虽然是mixed content,但仍旧可以成功加载,只不过抛出了警告。
在这里插入图片描述
以上的资源称为passive mixed content,可以简单的理解为仅仅用于展示的资源,这些资源出现安全问题的风险比较低。所以浏览器允许这些资源显示。但值得注意的是,虽然资源被加载了,但浏览器将不再展示https锁的标识。

Active mixed content

相比而言,active mixed content,则是很危险的mixed content,比如一个脚本文件被中间人劫持,可能导致用户提交表单数据中的关键信息的泄露。所以这些资源是不被允许加载的。

这种类型的资源包含:

  • <script>
  • <link>
  • <iframe>
  • XMLHttpRequest
  • fetch 请求
  • <object>
    在这里插入图片描述

解决

遇到这个问题,我们需要通过升级http的请求到https,保证资源可以被加载。

在引用外部资源文件的时候,可以通过//来代替https://或者http://

<!-- 使用以下的方式 -->
<script src="//cdn.domain.com/your-file.js"></script>
<!-- 而不是 -->
<script src="http://cdn.domain.com/your-file.js"></script>
<!-- 或者 -->
<script src="https://cdn.domain.com/your-file.js"></script>

//会自动根据当前页面协议来决定自身加载所使用的协议。进而保证当前加载的资源文件不出现mixed content。


http://www.niftyadmin.cn/n/1382803.html

相关文章

【第二十一章】 springboot + 定时任务

1、application.properties #cron job.everysecond.cron0/1 * * * * * job.everytensecond.cron0/10 * * * * *job.everyminute.cron0 0/1 * * * * job.everysecond2.cron* 0/1 * * * * cron表达式&#xff0c;有专门的语法&#xff0c;而且感觉有点绕人&#xff0c;不过简单来…

徒手一千行以上代码是怎样一种体验?

在一个晚上&#xff0c; 我的母亲问我&#xff0c; 今天怎么不开心。 我说在我的想象中&#xff0c; 有一个程序员&#xff0c; 一晚上码字千行效率肯定棒&#xff0c; 整个github找遍所有的repo都没有 她说将来会找到的 时间会给我答案 星期天我再次寻找依然没有发现 一个月后…

php 删除所有空格

function trimall($str)//删除空格 {$oldchararray(" "," ","\t","\n","\r"); $newchararray("","","","",""); return str_replace($oldchar,$newchar,$str); }测试&a…

dependencies devDependencies peerDependencies三者的区别

文章目录DependenciesDevDependenciesPeerDependencies参考Dependencies 首先dependencies是大家最常用的&#xff0c;比如项目依赖了vue&#xff0c;那么vue就是dependencies&#xff0c;这里的依赖是会被最终构建到部署环境的 // 将会保存到dependencies中 npm install vue…

压缩[SCOI2007]

题目描述 给一个由小写字母组成的字符串&#xff0c;我们可以用一种简单的方法来压缩其中的重复信息。压缩后的字符串除了小写字母外还可以&#xff08;但不必&#xff09;包含大写字母R与M&#xff0c;其中M标记重复串的开始&#xff0c;R重复从上一个M&#xff08;如果当前位…

JMS学习(三)ActiveMQ Message Persistence

1&#xff0c;JMS规范支持两种类型的消息传递&#xff1a;persistent and non-persistent。ActiveMQ在支持这两种类型的传递方式时&#xff0c;还支持消息的恢复、中间状态的消息&#xff08;message are cached in memory&#xff09; 2&#xff0c;ActiveMQ可将消息存储在三种…

Ubuntu 18.04修改Hostname

2019独角兽企业重金招聘Python工程师标准>>> hostname是标识网络上一台机器的标签。你应该在同一个网络上在不同的机器上使用不同的hostname。 在Ubuntu以前的16.04版本和大部分的Linux上&#xff0c;可以直接修改/etc/hostname文件即可。但在Ubuntu18.04&#xff0…

创建Mysql存储过程

为什么80%的码农都做不了架构师&#xff1f;>>> BEGIN declare stmt varchar(2000); declare num int; set sqlstrconcat(select count(*) into count from MaKe_KeyClick Where datediff(Dt,NOW())<1 and Types,Types, and CId,CId, and Keys,",Keys,&quo…