【发布时间】:2023-02-23 17:48:04
【问题描述】:
我正在尝试添加到电子签名项目头盔中。该小部件通过 iframe 连接。
.use(helmet())
之后我尝试向 contentSecurityPolicy 添加指令:
.use(helmet())
.use(
helmet.contentSecurityPolicy({
directives: {
...helmet.contentSecurityPolicy.getDefaultDirectives(),
"script-src": ["'self'", "'unsafe-inline'", "http://localhost:80/"],
"script-src-attr": ["'none'", "'unsafe-inline'", "http://localhost:80/"],
"connect-src": ["'self'", "http://localhost:80/"],
},
})
)
我直接在HTML页面上使用脚本,看了资料说头盔不喜欢,需要把脚本放到模块里连接
<script type="module" src="..."></script>
我尝试了很多选项,问题出现了,如果你完全禁用 contentSecurityPolicy,它有多安全?
我将不胜感激帮助解决这个问题
更新:我将脚本放入模块中,不再需要使用“script-src”和“script-src-attr”标头。将“connect-src”的分辨率更改为 localhost:3030,脚本的第一部分工作正常,但在尝试加载小部件后出现错误
之后,我添加了“frame-src”标题的分辨率
.use(
helmet.contentSecurityPolicy({
directives: {
...helmet.contentSecurityPolicy.getDefaultDirectives(),
"connect-src": ["'self'", "http://localhost:3030/"],
"frame-src": ["'self'", "https://eu.msn.com.ua/"],
},
})
)
标题没有更多的错误,但是 iframe 小部件打不开网站eu.msn.com.ua不允许你安装连接.没有头盔,小部件打开。在这种情况下可能是什么原因?
【问题讨论】:
标签: node.js express content-security-policy helmet.js