上传到S3后,CSP阻止fineuploader缩略图

时间:2018-07-05 19:57:40

标签: amazon-s3 http-headers blob fine-uploader content-security-policy

我的 Content-Security-Policy 遇到问题,该问题由 bepsvpt/secure-headers 软件包处理。

使用Fineuploader将文件成功上传到S3服务器后,插件尝试加载缩略图,以发送如下请求:

Integer [] ia = {1,2,3,4}; System.out.println("Array : "+Arrays.toString(ia)); List<Integer> list2 = Arrays.asList(ia); // creates only a (new ) List reference to existing Array object (and NOT a new ArrayList Object) // list2.add(5); // it will throw java.lang.UnsupportedOperationException - invalid operation (as Array size is fixed) list2.set(0,10); // making changes in existing Array object using List reference - valid list2.set(1,11); ia[2]=12; // making changes in existing Array object using Array reference - valid System.out.println("list2 : "+list2); System.out.println("Array : "+Arrays.toString(ia));

此请求被我的CSP阻止,这阻止了缩略图的显示以及控制台中的以下消息:

  

拒绝加载图像   'blob:http://b2b.local/085a1b81-0513-47a8-a334-fbc4eca4b365'因为   它违反了以下内容安全策略指令:“ img-src   “自我” http://*.google-analytics.com   http://businessmarketplace.s3.amazonaws.com http://b2b.dev   http://placehold.it http://mediaweek.com.au数据:”。

我的CSP配置如下:

/usr/local

注意,我正在将 img-src 策略的选项self,data和blob设置为 true

在删除 img-src 策略的所有配置并将 default-src 设置为 sudo chown -R "$USER":admin /usr/local/* sudo chown -R "$USER":admin /Library/Caches/Homebrew/* 时,我将获得该插件正确显示缩略图,但基本上我不允许所有类型的请求,因此忽略了这一点。

我的配置出现了什么问题,当“ self”和blob:属性设置为 true 时,无法加载缩略图?

1 个答案:

答案 0 :(得分:0)

在与我的团队测试了不同的配置之后,我们发现您可以使用 allow 数组来指定 'self' 或< strong> blob: ,因此我们将 img-src 指令设置为:

   'img-src' => [
        'allow' => [
            "'self'", 'blob:',
            $protocol.'*.google-analytics.com',
            $protocol.'businessmarketplace.s3.amazonaws.com',                
            $protocol.'placehold.it',
            $protocol.'mediaweek.com.au',
        ],
    ],

现在该政策允许 blob:http://b2b.local/hash

之类的请求