为(非)预检请求发送不同的 HTTP headers?
Send differing HTTP headers for (non) preflight requests?
对于我的 Web 应用程序,我正在配置一组 OWASP 安全性 headers,例如 X-Frame-Options
或 X-Content-Type-Options
。现在我想知道我是否应该为 每个 请求发送所有这些 headers,或者我是否应该只将它们用于特定请求,例如,使用 "full"一堆安全 headers 用于获取、post、删除、放置和仅发送 CORS headers 用于预检请求。
为您提供的每种内容类型(例如 text/html
、application/java
)和每种请求方法(GET
, PUT
, 等等).
然而,下面将讨论适用于不同请求和响应的那些。
关于返回的内容类型:
X-Content-Type-Options
尤其需要出现在所有内容类型上,否则 application/java
等类型可能会被 Internet Explorer 以其 content-sniffing. 进行不同的解释
X-Frame-Options
用于所有内容类型以阻止它们被加框,尽管这不会阻止它们通过其他方式加载(例如 <img>
标签)。
X-XSS-Protection
添加到 HTML 内容类型应该足够了。
Content-Security-Policy
对于 HTML 内容类型应该足够了。
关于 HTTP 方法(GET
、POST
、PUT
等):
Strict-Transport-Security
如果在每个请求上都输出它会更好,因为它会更新滑动过期时间,并且还会设置 HSTS 策略,无论资源最初被请求的方式如何。
- Public 针对每个请求的 HTTP 密钥固定扩展,与
Strict-Transport-Security
header 的方式大致相同,一旦输出,就会设置策略。因为这是越快越好,如果网站对所有请求都这样做,那么它被设置得更早的可能性就越大。
对于我的 Web 应用程序,我正在配置一组 OWASP 安全性 headers,例如 X-Frame-Options
或 X-Content-Type-Options
。现在我想知道我是否应该为 每个 请求发送所有这些 headers,或者我是否应该只将它们用于特定请求,例如,使用 "full"一堆安全 headers 用于获取、post、删除、放置和仅发送 CORS headers 用于预检请求。
为您提供的每种内容类型(例如 text/html
、application/java
)和每种请求方法(GET
, PUT
, 等等).
然而,下面将讨论适用于不同请求和响应的那些。
关于返回的内容类型:
X-Content-Type-Options
尤其需要出现在所有内容类型上,否则application/java
等类型可能会被 Internet Explorer 以其 content-sniffing. 进行不同的解释
X-Frame-Options
用于所有内容类型以阻止它们被加框,尽管这不会阻止它们通过其他方式加载(例如<img>
标签)。X-XSS-Protection
添加到 HTML 内容类型应该足够了。Content-Security-Policy
对于 HTML 内容类型应该足够了。
关于 HTTP 方法(GET
、POST
、PUT
等):
Strict-Transport-Security
如果在每个请求上都输出它会更好,因为它会更新滑动过期时间,并且还会设置 HSTS 策略,无论资源最初被请求的方式如何。- Public 针对每个请求的 HTTP 密钥固定扩展,与
Strict-Transport-Security
header 的方式大致相同,一旦输出,就会设置策略。因为这是越快越好,如果网站对所有请求都这样做,那么它被设置得更早的可能性就越大。