为了让 web 应用更安全并强迫自己更好地控制未来的添加(不同 CDN 上的 JS 和 CSS 资产),我在我的 Fastify(与 Express 相同)网络应用中运行 Helmet 插件。
如果我停用所有头盔控件,如下所示:
fastify.register(helmet, false)
一切正常,所有资源都加载到客户端。
然后我尝试用不同的配置玩(直到筋疲力尽),没有任何效果。配置和浏览器错误如下:
{
// contentSecurityPolicy: false,
crossOriginResourcePolicy: { policy: 'same-site'},
contentSecurityPolicy: {
directives: {
...require("fastify-helmet").contentSecurityPolicy.getDefaultDirectives(),
"default-src": ["'self'"],
"style-src": ["'self'", "'unsafe-inline'", 'unpkg.com', 'cdn.jsdelivr.net',
'fonts.googleapis.com', 'use.fontawesome.com'],
"script-src": ["'self'", 'unpkg.com', "cdn.jsdelivr.net", "'unsafe-inline'"],
"img-src": ["'self'", "'data'", "*.tile.osm.org"],
"font-src": ["'self'", 'fonts.googleapis.com', 'fonts.gstatic.com', 'use.fontawesome.com']
},
},
};
均匀设置
{ contentSecurityPolicy: false, crossOriginResourcePolicy: { policy: 'same-site'} }
与其他政策变体:同源,跨源似乎都不起作用。
如您所见,我也在 LOCALHOST 上运行,我没有在其他地方进行测试。