如何根据 koa 中的文件类型设置额外的内容安全策略?

How to setup extra content-security-policy based on file type in koa?

目标是为 svg 文件设置特殊规则,

server {
    add_header Content-Security-Policy "default-src 'none'; child-src https://www.youtube.com; font-src 'self' https://fonts.gstatic.com; frame-ancestors 'none'; frame-src https://www.youtube.com; img-src 'self'; media-src 'self'; script-src 'self'; style-src 'self' https://fonts.googleapis.com";

    location ~ \.svg$ {
        add_header Content-Security-Policy "default-src 'none'; frame-ancestors 'none'; style-src 'self' 'unsafe-inline'";
    }
}

对于第一个规则,我们可以

ctx.response.set('Content-Security-Policy', 'default-src ...');

svg 文件的第二行怎么样。

只用正则表达式

const svgPattern = /.+\.svg$/;
if (filename.test(svgPattern)) {
  // add required header
}