Refused to load the script xxxxxx because it violates the following Content Security Policy directiv
Posted Hwangzhiyoung
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Refused to load the script xxxxxx because it violates the following Content Security Policy directiv相关的知识,希望对你有一定的参考价值。
今天在公司碰到一个这样的问题:大致问题是这样的,我把新生成的国外cdn路径放到页面上来用来查看,发现会出现如下类似的错误信息
Refused to load the script xxxxxx because it violates the following Content Security Policy directive:"script-src \'self\' xxxxxxxxxxxxx"
原图已经没了,我在阮一峰的博客上把这张图贴上来,这个问题主要是由于浏览器为了防止跨域脚本攻击,而推出"网页安全政策"(Content Security Policy,缩写 CSP),
而我的nginx服务器开启了CSP,所以在对另一个域名下的资源就不能启动js脚本。
CSP的含义如下:
#激活内容安全策略Content Security Policy (CSP) ,大部分浏览器支持
# 告诉浏览器只能从本域名和你显式指定的网址下载脚本。
接着就是修改nginx配置,了解以下概念,我找到原先unsafe-inline 指向的cdn域名,利用通配符*使得该所有二级域名都符合unsafe-inline
最后访问成功!
总结:首先你已经把资源文件放入到服务器上,配置好了nginx,能正常运行,这时你想对浏览器做一个限制,想弄的安全一点,不想让外人对你的网站注入病毒脚本,所以你在nginx配置上添加 add_header Content-Security-Policy ,把你需要访问的url写进去 ,这样就 算完成CSP了。
以上是关于Refused to load the script xxxxxx because it violates the following Content Security Policy directiv的主要内容,如果未能解决你的问题,请参考以下文章
Cordova页面加载外网图片失败,Refused to load the image
Refused to load the script xxxxxx because it violates the following Content Security Policy directiv
安装Kubernetes报错:The connection to the server localhost:8080 was refused
Failed to load resource: net::ERR_CONNECTION_REFUSED
k8s The connection to the server was refused 问题解决记录
kubectl error: The connection to the server localhost:8080 was refused