我试图创建一个超级简单的网站只是为了显示内容,并有另一个页面能够改变页面上说的内容。(安全是我不关心的问题,所以请随意发布一些粗略的答案)。
但是当我访问站点(托管在NGINX后面的数字海洋服务器上)时,我得到以下错误:
Refused to connect to wss://subdomain.domain.online/socket.io/?EIO=4&transport=websocket&sid=SIDHERE because it appears in neither the connect-src directive nor the default-src directive of the Content Security Policy.
我找遍了所有地方,得出了这个策略:
<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline' wss: ws: *; connect-src 'self' ws: wss: *;">
但仍然得到错误,我想知道是否有人知道一个修复。
欢呼,山姆。
看起来你已经发布了2个CSP -一个通过<meta http-equiv='Content-Security-Policy'>
标签,另一个通过CSP HTTP头。在这种情况下,应用最严格的策略。
第二个CSP是由头盔中间件发布到服务器上的,头盔版本4使用默认规则打开了CSP。
在helmet.contentSecurityPolicy(options)
中禁用CSP,如果你想使用标签:
app.use(
helmet({
contentSecurityPolicy: false,
})
);
或者在头盔中配置CSP头,不使用meta标签。