angular - CSP 阻止来自 S3 的图像
问题描述
我有一个将图像上传到服务器的客户端,然后,服务器获取该图像并将其上传到 S3,等待 URL,然后返回该图像的 URL。
问题是由于某种原因,客户端拒绝加载服务器提供的图像
在控制台中,这是我收到的消息(出于隐私原因删除了实际 URL): 拒绝加载图像“ URL ”,因为它违反了以下内容安全策略指令:“img-src 'self' data:”。
图片以所有读取权限上传,因此任何人都可以读取网址。
HTML 中的 CSP 是这样的:
<meta http-equiv="Content-Security-Policy" content="default-src *; img-src * 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' *; style-src 'self' 'unsafe-inline' *">
我必须说我正在将亚马逊创建的 URL 传递给客户端。例如:
https://mybucket.s3.us-west-2.amazonaws.com/ecc6898f-56b1-4ad1-bb73-3b5c9749d264.jpeg
解决方案
当指令中有其他条目时,通配符似乎被忽略了
所以试试这个:
<meta http-equiv="Content-Security-Policy" content="default-src *; img-src https 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' *; style-src 'self' 'unsafe-inline' *">
推荐阅读
- react-native - 如何在 Google Oauth2 上配置自定义 url
- javascript - 遍历 JSON 以仅更新单个元素
- cordova - 了解如何使用 cordova-plugin-dialogs 文档示例 8.0.0
- python - OverflowError:MongoDB 最多只能处理 8 个字节的整数?
- javascript - 将来自服务器的图像响应转换为可下载文件
- enums - Swift:枚举的哈希值正在获取随机数
- scala - Scala 中的 =!= 运算符是什么?
- f# - 多参数计算表达式自定义操作
- client-server - 使用客户端请求运行 node-red 流
- node.js - 来自 index.js 文件的 Azure Node.js 内部服务器错误