针对Edge浏览器问题提示对网站响应头的一些优化

在使用 Edge 浏览器打开网页时,按 F12 打开控制台,在下面的 问题 页卡内可以看到当前网站上的一些存在的问题,可以针对性做一些优化。

edge浏览器问题提示

排除一些第三方服务引起的问题,我在自己的网站上看到两个需优化的问题,如下:

设置 x-content-type-options 响应头

在安全类的问题里出现较多这个提示:Response should include 'x-content-type-options' header.。关于这个请求头,参考 kimi 的说明:

X-Content-Type-Options 是一个通用的 HTTP 响应头,可以被任何支持 HTTP 的服务器用来增强网站的安全性。
当服务器向客户端(通常是浏览器)发送响应时,如果响应中包含了 X-Content-Type-Options 头部,并且其值为 “nosniff”,那么浏览器将不会尝试去嗅探响应内容的 MIME 类型,而是会严格遵循响应头中指定的 Content-Type。这样做可以防止一些安全问题,比如:
跨站脚本攻击(XSS):如果攻击者能够上传或注入恶意脚本到网站,并且这些脚本的 MIME 类型被浏览器错误地识别为无害的类型(如图片或音频),浏览器可能会执行这些脚本。通过设置 “nosniff”,可以减少这种风险。
文件类型混淆:有时,攻击者可能会尝试通过改变文件扩展名来混淆文件的实际类型。如果浏览器尝试嗅探文件的实际内容,可能会被误导。”nosniff” 指令告诉浏览器不要这样做。
不安全的文件下载:如果用户下载了一个看似安全的文件,但实际上是恶意的,浏览器可能会因为 MIME 类型嗅探而错误地打开它,而不是提示用户保存。”nosniff” 可以防止这种情况发生。

对于这个问题,我们只需要在网站对应的 nginx 配置中加入以下配置,然后重载 nginx 配置就行:

server {
    ...
    add_header X-Content-Type-Options nosniff;
    ...
}

设置 Cache-Control 响应头

Edge 的问题提示中,还可以看到有关 Cache-Control 的提示,主要有两个:

A 'cache-control' header is missing or empty.
The 'Expires' header should not be used, 'Cache-Control' should be preferred.

Cache-Control 头部是 HTTP/1.1 协议的一部分,用于指定响应的缓存指令。这些指令告诉浏览器和其他中间缓存如何存储和使用响应数据。未正确设置 Cache-Control,可能会导致缓存行为不符合预期。

并且,推荐使用新的 Cache-Control 响应头替代属于 HTTP/1.0 时代的 Expires 响应头,这个缓存控制的响应头对于一些静态资源类的请求很有用,解决这两个提示,在 nginx 配置中删除 Expires 相关配置然后加上以下代码即可:

add_header Cache-Control "public, max-age=3600";

其中 max-age 标识缓存时间一个小时,根据需要调整,同样重载 nginx 配置生效。

标题:针对Edge浏览器问题提示对网站响应头的一些优化

原文链接:https://beltxman.com/4310.html

若无特殊说明本站内容为 行星带 原创,未经同意请勿转载。

发表评论

您的电子邮箱地址不会被公开。

Scroll to top