我可以将 Content-Security-Policy HTTP header 用于后端 API 吗?

Shall I use the Content-Security-Policy HTTP header for a backend API?

我们正在后端实施 HSTS API,我偶然发现了内容安全策略 (CSP) header。这 header 告诉浏览器可以从何处下载图像、视频、样式表、脚本等资源。

由于后端 API 不会真正在浏览器中显示内容,设置此 header 的价值是什么?

CSP is a technique designed to impair -攻击。也就是说,它与服务超媒体相结合最有用,超媒体依赖于加载它的其他资源。对于 API,这不完全是我所期望的场景。这并不是说您不能使用它。如果您的回复中确实没有互动内容,没有什么可以阻止您提供此 header:

Content-Security-Policy: default-src 'none';

更进一步,您可以使用 CSP 作为某种权宜之计 Intrusion Detection System by setting report-uri in order to fetch incoming violation reports。这在预期用途之内,但仍然有点便宜。

总之,理论上可以不费吹灰之力提高您API的安全性。实际上,优势可能很小到 none。如果您愿意,发送 header 应该没有什么坏处。您可能会获得更多收益,例如suppressing MIME-type sniffing,不过

另请参阅:The OWASP Secure Headers Project