LEMP 服务器上的 Nginx、webP 和严格内容安全策略 (SCP)

LEMP 服务器上的 Nginx、webP 和严格内容安全策略 (SCP)

我正在尝试在 nginx 中创建一个强大且安全的内容安全策略,运行基于 wordpress 的 LEMP 服务器。我相信我正在使用 ngx_pagespeed.so 模块,并在我的服务器上实现了 FastCGI。我相信其中一个功能会动态地将我的 jpeg 图像渲染为 webP 图像。

在我的 Nginx 上的 content-security-policy 指令中,我试图消除 XSS 攻击,同时仍然使用由 pagespeed 模块或 FastCGI 创建的 webP 图像。

但是,为了让 CSP 允许 webP 图像,我需要img-src 'self' data:;在内容安全策略标头指令中输入以下内容:

add_header Content-Security-Policy "default-src 'self'; script-src 'self'; img-src 'self' data:;";

问题在于,启用data:阻止功能会使我的网站容易受到 XSS 攻击,从而使内容安全策略变得毫无意义。因此,我似乎可以使用常规 jpeg 创建一个超级安全但速度缓慢的网站,或者,我可以使用服务器渲染的 webP 图像创建一个超级不安全但速度很快的网站。

我的问题是,有没有办法在 CSP 指令中指定仅允许使用 webP 图像img-src 'self' data;";?理想情况下,我想告诉 nginx,应该在 CSP 中批准 webP 图像,但应该阻止我的网站或 webP 格式之外的任何其他图像。

这可能吗?如果不可能,那么对于至少 50% 的服务器来说,CSP 似乎毫无意义。如果可以,您能帮我解决这个问题吗?并告诉我如何实现一个指令,将 webP 定义为我的 CSP 中允许的格式?

谢谢你的帮助!

相关内容