内容安全策略 - 不同的行为 windows 与 linux
Content security policy - different behaviour windows vs linux
我有一个在 LAMP 系统上运行的 wordpress 网站。
我试图提高安全性(我远不是专家!)并添加了一个 CSP header。
Header set Content-Security-Policy "default-src 'self'; font-src 'self' data: https://fonts.gstatic.com; frame-src https://www.google.com https://www.youtube.com; img-src 'self' https://secure.gravatar.com; script-src 'self' 'unsafe-inline' ; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; object-src 'none'"
我不明白的是:如果我从 script-src
中删除 unsafe-inline
,我的日历小部件就不会再在 windows 浏览器上加载(同时测试了 firefox 和 chrome).但它适用于 Linux 浏览器 (Firefox)。
这是 apache2、windows 浏览器或日历 wp 插件中的错误吗?
我很困惑。 :-)
它看起来不像是 Apache 错误,它只是将 CSP 作为字符串发送,甚至不了解其中的内容。
当然你可以在 httpd.conf
中使用一些用户代理条件,例如:
SetEnvIfNoCase User-Agent "Linux x86_64" noCSP=1
并根据 noCSP
标志发布 CSP 以排除某些类型的用户代理的 CSP header。
但是您可以 easily 澄清这一点并确保您对 Windows/Linux 浏览器具有相同的 CSP header。
我认为 WP 日历插件使用了一些内联脚本,这些脚本在没有 'unsafe-inline'
的情况下被阻止。您可以在 windows 浏览器的浏览器控制台中检查相应的 CSP 错误。
可能您在 Linux Firefox 浏览器中禁用了 CSP(about:config
页面 -> security.csp.enable
-> false)或者某些扩展禁用了 CSP。
所以不同的 Windows/Linux 行为来自我的 Linux Firefox 中 运行 的实验室插件。
我必须与插件作者核实为什么需要 unsafe-inline
。
我有一个在 LAMP 系统上运行的 wordpress 网站。
我试图提高安全性(我远不是专家!)并添加了一个 CSP header。
Header set Content-Security-Policy "default-src 'self'; font-src 'self' data: https://fonts.gstatic.com; frame-src https://www.google.com https://www.youtube.com; img-src 'self' https://secure.gravatar.com; script-src 'self' 'unsafe-inline' ; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; object-src 'none'"
我不明白的是:如果我从 script-src
中删除 unsafe-inline
,我的日历小部件就不会再在 windows 浏览器上加载(同时测试了 firefox 和 chrome).但它适用于 Linux 浏览器 (Firefox)。
这是 apache2、windows 浏览器或日历 wp 插件中的错误吗?
我很困惑。 :-)
它看起来不像是 Apache 错误,它只是将 CSP 作为字符串发送,甚至不了解其中的内容。
当然你可以在 httpd.conf
中使用一些用户代理条件,例如:
SetEnvIfNoCase User-Agent "Linux x86_64" noCSP=1
并根据 noCSP
标志发布 CSP 以排除某些类型的用户代理的 CSP header。
但是您可以 easily 澄清这一点并确保您对 Windows/Linux 浏览器具有相同的 CSP header。
我认为 WP 日历插件使用了一些内联脚本,这些脚本在没有 'unsafe-inline'
的情况下被阻止。您可以在 windows 浏览器的浏览器控制台中检查相应的 CSP 错误。
可能您在 Linux Firefox 浏览器中禁用了 CSP(about:config
页面 -> security.csp.enable
-> false)或者某些扩展禁用了 CSP。
所以不同的 Windows/Linux 行为来自我的 Linux Firefox 中 运行 的实验室插件。
我必须与插件作者核实为什么需要 unsafe-inline
。