Nginx 内容安全策略中的空http和https声明

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:声明的含义是什么?它意味着允许来自该协议上所有站点的内容。例如: 目前的政策基本上允许一切,而且毫无意义 这意味着允许来自该协议上所有站点的

我正在使用nginx设置CSP头

我经常在例子中看到这一点:

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