zoukankan      html  css  js  c++  java
  • (二)内容嗅探攻击防护 —X-Content-Type-Options

    (二)内容嗅探攻击防护—X-Content-Type-Options

    互联网上的资源有各种类型,通常浏览器会根据响应头的Content-Type字段来分辨它们的类型。例如:"text/html"代表html文档,"image/png"是PNG图片,"text/css"是CSS样式文档。然而,有些资源的Content-Type是错的或者未定义。这时,某些浏览器会启用MIME-sniffing来猜测该资源的类型,解析内容并执行。

    例如,我们即使给一个html文档指定Content-Type为"text/plain",在IE8-中这个文档依然会被当做html来解析。利用浏览器的这个特性,攻击者甚至可以让原本应该解析为图片的请求被解析为JavaScript。通过下面这个响应头可以禁用浏览器的类型猜测行为:

    X-Content-Type-Options: nosniff

    PHP设置

    header("X-Content-Type-Options:nosniff");

    如果服务器发送响应头 "X-Content-Type-Options: nosniff",则 script 和 styleSheet 元素会拒绝包含错误的 MIME 类型的响应。这是一种安全功能,有助于防止基于 MIME 类型混淆的***。

    简单理解为:通过设置"X-Content-Type-Options: nosniff"响应标头,对 script 和 styleSheet 在执行是通过MIME 类型来过滤掉不安全的文件

    服务器发送含有 "X-Content-Type-Options: nosniff" 标头的响应时,此更改会影响浏览器的行为。

    如果通过 styleSheet 参考检索到的响应中接收到 "nosniff" 指令,则 Windows Internet Explorer 不会加载“stylesheet”文件,除非 MIME 类型匹配 "text/css"。

    如果通过 script 参考检索到的响应中接收到 "nosniff" 指令,则 Internet Explorer 不会加载“script”文件,除非 MIME 类型匹配以下值之一:

    • "application/ecmascript"

    • "application/javascript"

    • "application/x-javascript"

    • "text/ecmascript"

    • "text/javascript"

    • "text/jscript"

    • "text/x-javascript"

    • "text/vbs"

    • "text/vbscript"

  • 相关阅读:
    Python生成测试数据-Faker(非LOL选手-李相赫)
    requests-html库轻体验-HTMLSession下载表情包
    【转载-学习】[一个前端必会的 Nginx免费教程
    Requests接口测试库-官网快速上手
    Java 环境变量配置
    Python多线程-ThreadLocal
    Python多线程
    day11 装饰器---函数的使用方法
    day10.函数,函数的参数
    day9文件操作
  • 原文地址:https://www.cnblogs.com/lizm166/p/12627190.html
Copyright © 2011-2022 走看看