Nginx 内容安全策略中的空http和https声明
我正在使用nginx设置CSP头 我经常在例子中看到这一点:Nginx 内容安全策略中的空http和https声明,nginx,http-headers,content-security-policy,Nginx,Http Headers,Content Security Policy,我正在使用nginx设置CSP头 我经常在例子中看到这一点: default-src 'self' http: https: data: blob: 'unsafe-inline' 'unsafe-eval' https://*.foo.com; 我知道https://*.foo.com允许从foo.com域加载 但“空”http:和https:声明的含义是什么?它意味着允许来自该协议上所有站点的内容。例如: 目前的政策基本上允许一切,而且毫无意义 这意味着允许来自该协议上所有站点的
default-src 'self' http: https: data: blob: 'unsafe-inline' 'unsafe-eval' https://*.foo.com;
我知道https://*.foo.com
允许从foo.com
域加载
但“空”http:和https:声明的含义是什么?它意味着允许来自该协议上所有站点的内容。例如:
目前的政策基本上允许一切,而且毫无意义 这意味着允许来自该协议上所有站点的内容。例如:
目前的政策基本上允许一切,而且毫无意义 你是说https://*.foo.com是毫无意义的,因为这个方案中的任何内容都是允许的?所以我想我也应该删除http:,
数据:
,blob:
,因为它们也不够具体。尽管它对某些用例很有用。例如defaultsrc:https:“不安全内联”“不安全评估”;升级不安全请求
可以在不阻塞任何内容的情况下强制https作为开始。然后制定更严格的政策。或者可以添加更严格的脚本src
,样式src
…等等。但允许图像和视频回退到默认src
。虽然在这种情况下,首选的是有一个严格的默认src
,然后是更宽松的图像src
。所以你是说https://*.foo.com
是没有意义的,因为该方案中的任何内容都是允许的?所以我想我也应该删除http:
,数据:
,blob:
,因为它们也不够具体。理想情况下。尽管它对某些用例很有用。例如defaultsrc:https:“不安全内联”“不安全评估”;升级不安全请求
可以在不阻塞任何内容的情况下强制https作为开始。然后制定更严格的政策。或者可以添加更严格的脚本src
,样式src
…等等。但允许图像和视频回退到默认src
。尽管在这种情况下,首选的是使用严格的默认src
,然后使用更宽松的图像src
。