• 浏览器报错 Mixed Content


    Mixed Content(混合内容)出现于如下场景:HTML页面是通过HTTPS加载的,但是其他资源文件(如图片,视频,样式表文件,脚本)是使用HTTP方式加载的。之所以称为混合内容,是因为在一个网页中同时使用了HTTP和HTTPS,而最初的请求方式为 HTTPS。

    现代浏览器可能会阻止此类内容,或者显示关于此类内容的警告,提醒用户此页面包含不安全的内容。阻止混合内容的浏览器可能会首先尝试将该内容的连接从HTTP “升级”到HTTPS。

    Mixed Content 分类(主动混合内容和被动混合内容)

    主动混合

    作为整体与页面进行交互,并且几乎允许攻击者对页面进行任何操作。 主动混合内容包括浏览器可下载和执行的脚本、样式表、iframe、flash 资源及其他代码。
    
    例如:
      script 标签的  src 属性
      link   标签的  href 属性
      iframe    的  src 属性
      XMLHttpRequest  请求
       fetch()         请求
       在CSS中可以使用url的情况(如 @font-face,cursor,background-image等)
       object 标签的 data 属性
       navigator.sendBeacon() 请求

    被动混合

    指的是不与页面其余部分进行交互的内容,从而使中间人攻击在拦截或更改该内容时能够执行的操作受限。被动混合内容包括图像、视频和音频内容,以及无法与页面其余部分进行交互的其他资源。
    
    例如:
    
    img 标签的 src 属性
    audio 标签的 src 属性
    video 标签的 src 属性
    object 标签

    解决Mixed Content问题办法

    第一种:修改报错页的头部

    代码的head头中,加入如下配置:
    <meta http-equiv='Content-Security-Policy' content='upgrade-insecure-requests'>
    
    ## 这行代码的作用是,告诉浏览器,网页中所有的HTTP链接,都自动升级成为HTTPS去访问。至于是否能够访问成功,就要看对方服务器的支持程度了。就算浏览器采用HTTPS的方式去访问失败,最多也只是对应的内容不能使用或显示,再业不会出现三角形告警了。

    第二种:修改响应头

    添加在响应头中,add_header Content-Security-Policy "upgrade-insecure-requests"
  • 相关阅读:
    循环语句的基本使用
    创建一个可拖动的dom元素。
    JavaScript中的callee,caller,call,apply的使用
    两个数组去重的方法。
    利用setTimeout建立能捕捉鼠标多次点击和鼠标长按的事件处理程序。
    document.getElementByClassName()的使用和兼容老浏览器。
    jQuery .data()方法的运用。
    javascript对象的深拷贝。
    未来、
    linux上机作业
  • 原文地址:https://www.cnblogs.com/zh-dream/p/14028646.html
Copyright © 2020-2023  润新知