如何禁用内容安全策略并保持安全?
how to disable Content Security Policy and stay secure?
我想禁用 CSP - app.use(helmet.contentSecurityPolicy())
因为它会阻止任何内联脚本。 hash 和 nonce 解决方案 (https://content-security-policy.com/examples/allow-inline-script/) 对我的应用来说太过分了。
xss-clean
package 或其他解决方案是否足以获得常规中等安全性?
谢谢:)
您可以完全控制使用您提到的 helmet
中间件。
reference docs 很清楚如何设置您的 CSP。
设置后,您始终可以使用 this one.
等验证器评估您的 CSP 的强度
来自文档:
If no directives are supplied, the following policy is set (whitespace added for readability):
default-src 'self';
base-uri 'self';
block-all-mixed-content;
font-src 'self' https: data:;
frame-ancestors 'self';
img-src 'self' data:;
object-src 'none';
script-src 'self';
script-src-attr 'none';
style-src 'self' https: 'unsafe-inline';
upgrade-insecure-requests
您可以按照文档中的说明在加载“头盔”时设置策略。
例如,这里是一个示例配置:
// Sets "Content-Security-Policy: default-src 'self';script-src 'self' example.com;object-src 'none';upgrade-insecure-requests"
app.use(
helmet.contentSecurityPolicy({
directives: {
defaultSrc: ["'self'"],
scriptSrc: ["'self'", "example.com"],
objectSrc: ["'none'"],
upgradeInsecureRequests: [],
},
})
);
我想禁用 CSP - app.use(helmet.contentSecurityPolicy())
因为它会阻止任何内联脚本。 hash 和 nonce 解决方案 (https://content-security-policy.com/examples/allow-inline-script/) 对我的应用来说太过分了。
xss-clean
package 或其他解决方案是否足以获得常规中等安全性?
谢谢:)
您可以完全控制使用您提到的 helmet
中间件。
reference docs 很清楚如何设置您的 CSP。
设置后,您始终可以使用 this one.
等验证器评估您的 CSP 的强度来自文档:
If no directives are supplied, the following policy is set (whitespace added for readability):
default-src 'self';
base-uri 'self';
block-all-mixed-content;
font-src 'self' https: data:;
frame-ancestors 'self';
img-src 'self' data:;
object-src 'none';
script-src 'self';
script-src-attr 'none';
style-src 'self' https: 'unsafe-inline';
upgrade-insecure-requests
您可以按照文档中的说明在加载“头盔”时设置策略。
例如,这里是一个示例配置:
// Sets "Content-Security-Policy: default-src 'self';script-src 'self' example.com;object-src 'none';upgrade-insecure-requests"
app.use(
helmet.contentSecurityPolicy({
directives: {
defaultSrc: ["'self'"],
scriptSrc: ["'self'", "example.com"],
objectSrc: ["'none'"],
upgradeInsecureRequests: [],
},
})
);