Kaa*_*soy 5 javascript node.js content-security-policy vue.js
我正在使用express.public()函数在我的node.js服务器中提供一个HTML页面。
我将其添加到我的 html 页面中:
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
Run Code Online (Sandbox Code Playgroud)
Chrome 给了我一个内容安全策略。
我在我的 Node index.js 中使用了这个中间件
app.use(morgan('tiny'));
app.use(helmet());
app.use(cors());
app.use(express.json());
app.use(express.static("./public"));
Run Code Online (Sandbox Code Playgroud)
我的应用程序标题:
Content-Security-Policy: default-src 'self';base-uri 'self';block-all-mixed-content;font-src 'self' https: data:;frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests
Run Code Online (Sandbox Code Playgroud)
如何在没有任何 SecurityPolicy 的情况下添加此脚本
解决了
我从我的项目中删除了“头盔”。Helmet 阻止了除绝对域之外的所有 CDN 和脚本。
内容安全策略在所提供的 html 文件中或由提供 html 的软件(例如 Nginx、Apache)设置。
目前您有:default-src 'self',这意味着您告诉浏览器它只能向自己的域发出请求。
您需要将https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js添加到它可以访问的域列表中。
那会是这样的:
Content-Security-Policy: default-src 'self';script-src 'self' https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js; base-uri 'self';block-all-mixed-content;font-src 'self' https: data:;frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests
Run Code Online (Sandbox Code Playgroud)
因此 default-src: self 设置默认值以将请求限制为仅发送到您自己的域。
script-src 'self' https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js会覆盖此内容,并专门针对脚本表示将请求限制为仅您的域和该网址。
这有很多细节和示例: https: //content-security-policy.com
| 归档时间: |
|
| 查看次数: |
9733 次 |
| 最近记录: |