我是否在为自己创建 CSP 问题?
Am I creating a CSP issue for myself?
我已经设置了我的节点。js/express 项目使用存储在 S3 中的 <img>
。我在引用它们时收到此错误消息:.....because it violates the following Content Security Policy directive: "img-src 'self' data:".
所以我使用下面的代码更改 CSP,因为我在此处找到的 <meta>
标签中的 none 解决了我的错误。我只是想确保这不会造成安全问题,因为我对 CSP
知之甚少
app.get("/", (req, res) => {
res.set("Content-Security-Policy", "default-src *; style-src 'self' http://* 'unsafe-inline'; script-src 'self' http://* 'unsafe-inline' 'unsafe-eval'")
})
您的 CSP 完全不安全,因为它没有任何限制。
脚本
script-src http://* 'unsafe-inline' 'unsafe-eval'
允许来自任何来源的外部脚本,允许内联脚本和 eval 函数。
您应该 http://*
指定允许的脚本加载来源的白名单,例如:
script-src 'unsafe-inline' 'self' stackpath.bootstrapcdn.com tagmanager.google.com ajax.googleapis.com/ajax/libs/jquery/ googletagmanager.com https://connect.facebook.net;
仅当某些脚本使用 eval() / Function() / 时才需要 'unsafe-eval'
setInterval()
/ setTimeout() 函数。
尝试使用 'nonce-value' 令牌来避免 'unsafe-inline'
。
*
同样适用于 style-src
.
图片
如果您从 Amazon S3 加载图像,您可以在 img-src
中指定存储桶的域名,例如 img-src 'self' https://bucketname.s3.Region.amazonaws.com
.
您可以完全打开所有图片来源 img-src *
,但仅限于图片,不适用于脚本、样式、iframe 等。
img-src
中的 data:
仅当您使用数据时才需要:-URL 像 <img src='data:image/gif;base64,...'>
或 CSS 收缩像 background-url(data:image/jpeg;base64,...)
.
默认-src
好的做法是 default-src 'self';
- 所有未指定的回退指令仅限于自身域。
CSP 必须尽可能严格以确保安全。
我已经设置了我的节点。js/express 项目使用存储在 S3 中的 <img>
。我在引用它们时收到此错误消息:.....because it violates the following Content Security Policy directive: "img-src 'self' data:".
所以我使用下面的代码更改 CSP,因为我在此处找到的 <meta>
标签中的 none 解决了我的错误。我只是想确保这不会造成安全问题,因为我对 CSP
app.get("/", (req, res) => {
res.set("Content-Security-Policy", "default-src *; style-src 'self' http://* 'unsafe-inline'; script-src 'self' http://* 'unsafe-inline' 'unsafe-eval'")
})
您的 CSP 完全不安全,因为它没有任何限制。
脚本
script-src http://* 'unsafe-inline' 'unsafe-eval'
允许来自任何来源的外部脚本,允许内联脚本和 eval 函数。
您应该 http://*
指定允许的脚本加载来源的白名单,例如:
script-src 'unsafe-inline' 'self' stackpath.bootstrapcdn.com tagmanager.google.com ajax.googleapis.com/ajax/libs/jquery/ googletagmanager.com https://connect.facebook.net;
仅当某些脚本使用 eval() / Function() / 时才需要 'unsafe-eval'
setInterval()
尝试使用 'nonce-value' 令牌来避免 'unsafe-inline'
。
*
同样适用于 style-src
.
图片
如果您从 Amazon S3 加载图像,您可以在 img-src
中指定存储桶的域名,例如 img-src 'self' https://bucketname.s3.Region.amazonaws.com
.
您可以完全打开所有图片来源 img-src *
,但仅限于图片,不适用于脚本、样式、iframe 等。
img-src
中的 data:
仅当您使用数据时才需要:-URL 像 <img src='data:image/gif;base64,...'>
或 CSS 收缩像 background-url(data:image/jpeg;base64,...)
.
默认-src
好的做法是 default-src 'self';
- 所有未指定的回退指令仅限于自身域。
CSP 必须尽可能严格以确保安全。