对于一个私人项目,我想从我的家庭服务器加载一些外部图像,脚本和样式,但是它不起作用。错误在哪里?
Nginx配置文件
location / {
index index.php index.html index.htm;
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
server_tokens off;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "default-src *; script-src *; object-src *; style-src *; img-src *; media-src *; frame-src *; font-src *; connect-src *";
add_header X-Content-Security-Policy "default-src *; script-src *; object-src *; style-src *; img-src *; media-src *; frame-src *; font-src *; connect-src *";
add_header X-WebKit-CSP "default-src *; script-src *; object-src *; style-src *; img-src *; media-src *; frame-src *; font-src *; connect-src *";
}
HTML元标记:
<meta http-equiv="Content-Security-Policy" content="default-src *; script-src *; style-src *; img-src *; font-src *; connect-src *; media-src *; object-src *; prefetch-src *; child-src *; frame-src *; worker-src *; frame-ancestors *; form-action *; sandbox allow-forms allow-same-origin allow-scripts allow-top-navigation allow-popups allow-pointer-lock; reflected-xss allow; base-uri *; manifest-src *;" />
<meta http-equiv="X-Content-Security-Policy" content="default-src *; script-src *; object-src *; style-src *; img-src *; media-src *; frame-src *; font-src *; connect-src *">
<meta http-equiv="X-WebKit-CSP" content= "default-src *; script-src *; object-src *; style-src *; img-src *; media-src *; frame-src *; font-src *; connect-src *">
答案 0 :(得分:0)
问题在于*
仅与网络方案URL(http / https / ftp等)匹配。所以你可以
myserver.com
)cdvfile:
添加到您的政策中我会用您的家庭服务器URL制作一个default-src
,并删除所有其他源。如果只允许从相同来源加载内容,则应将CSP源设置为'self'
(以防您的项目托管在家庭服务器上)。
配置中的大多数CSP指令都是多余的,例如:如果要允许任何URI作为站点的基本URI,则应删除base-uri
。我建议检查每个指令以获取必要的结果。 CSP有一个不错的备忘:https://content-security-policy.com/