Apache ‘x-content-type-options‘ header.

15 篇文章 0 订阅
14 篇文章 0 订阅

 

 

x-content-type-options要求所有资源都使用 HTTP 响应标头提供服务。X-Content-Type-Options: nosniff

为什么这很重要?

有时,元数据浏览器需要知道如何解释资源的内容不正确,不可靠或不存在。在这些情况下,浏览器使用上下文线索来检查响应的字节以检测文件格式。这称为MIME 嗅探,无论服务器发送的指定 HTTP 标头如何,都会完成此操作。Content-Type

例如,如果浏览器请求脚本,但该脚本的媒体类型不正确(例如),浏览器仍将检测脚本并执行它。x/x

虽然内容嗅探可能是有益的,但它也可能使网站/应用程序暴露于基于MIME类型混淆的攻击,从而导致安全问题,特别是在托管不可信内容的服务器的情况下。

幸运的是,浏览器提供了一种通过使用 HTTP 响应标头选择退出 MIME 嗅探的方法。X-Content-Type-Options: nosniff

回到上一个示例,如果为脚本发送了标头,并且浏览器检测到它是一个脚本,并且它没有与其中一种JavaScript媒体类型一起提供,则该脚本将被阻止。X-Content-Type-Options: nosniff

虽然现代浏览器主要尊重脚本和样式表的标头,但Chromium在其他资源上使用此响应标头进行跨源读取阻止

提示检查什么?

该提示将检查是否所有资源都与值为 的 HTTP 标头一起提供。X-Content-Type-Optionsnosniff

触发提示的示例

HTTP 标头不向资源提供服务。X-Content-Type-Options

HTTP/... 200 OK

...

Content-Type: image/png

脚本随 HTTP 标头一起提供,但值为 无效。X-Content-Type-Optionsno-sniff

HTTP/... 200 OK

...
Content-Type: text/javascript; charset=utf-8
X-Content-Type-Options: no-sniff

传递提示的示例

脚本随有效值为 的 HTTP 标头一起提供。X-Content-Type-Optionsnosniff

HTTP/... 200 OK

...
Content-Type: text/javascript; charset=utf-8
X-Content-Type-Options: nosniff

如何配置服务器以传递此提示

如何配置 Apache

可以将 Apache 配置为使用 Header 指令添加标头

<IfModule mod_headers.c>
    Header always set X-Content-Type-Options nosniff
</IfModule>

请注意:

  • 上面的代码片段适用于 Apache ,但您需要启用mod_headers才能使其生效。v2.2.0+

  • 如果您有权访问Apache 主配置文件(通常称为 ),则应在该文件中的<Directory>部分中添加逻辑。这通常是推荐的方式,因为使用.htaccess文件会减慢Apache的速度!httpd.conf

    如果您无权访问主配置文件(在托管服务中很常见),请在网站/应用程序的根目录中添加代码段。.htaccess

有关完整的配置集,而不仅仅是此规则,请参阅Apache服务器配置相关文档

如何配置 IIS

 

如何使用这个提示?

此软件包由 webhint 自动安装:

npm install hint --save-dev

要使用它,请通过.hintrc配置文件激活它:

{
    "connector": {...},
    "formatters": [...],
    "hints": {
        "x-content-type-options": "error",
        ...
    },
    "parsers": [...],
    ...
}

注意:推荐的运行webhint的方式是作为您的项目。devDependency

延伸阅读

TOP

参考文献:

使用"X-Content-Type-Options"标头|webhint 文档 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Risehuxyc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值