首页 文章

为CDN实施正确的CSP规则

提问于
浏览
0

我目前正在我的大学进行移动网络应用程序开发课程的介绍,并且正在努力在我的秘银应用程序上设置bootstrap .

我以前在"normal"网络应用程序上设置了bootstrap,但我很难理解如何在我的Mithril.js应用程序中正确设置内容安全策略 .

应该注意的是,这不是我当前任务的必要部分,但我更愿意亲自理解CSP的概念,因为它是一个非常重要的理解( OWASP top 10 ,哟!) .

所以我不是要求任何人帮我完成作业,而是要帮助我理解我在CSP的这种课外应用中遇到的问题 .


这就是我的CSP现在的样子:

<meta http-equiv="Content-Security-Policy" 
content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval';
         style-src 'self' 'unsafe-inline' http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css;
         media-src *; img-src 'self' data: content:;
         script-src https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js
         http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js;">

CDN网址工作正常,目前正在我设置的多个其他网站上实施,但我在Chrome上检查控制台时遇到这些错误:

拒绝加载脚本'http:// localhost:8013 / cordova.js',因为它违反了以下内容安全策略指令:“script-src https://ajax.googleapis.com/ajax/libs/jquery/1.12 .4 / jquery.min.js http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js“ . index.html:1拒绝加载脚本'http:// localhost:8013 / bin / app.js',因为它违反了以下内容安全策略指令:“script-src https://ajax.googleapis.com/ajax /libs/jquery/1.12.4/jquery.min.js http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js“ . jquery.min.js:2拒绝加载字体'http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/fonts/glyphicons-halflings-regular.woff2',因为它违反了以下内容安全策略指令:“ default-src'self'数据:gap:https://ssl.gstatic.com'unsafe-eval'“ . 请注意,'font-src'未显式设置,因此'default-src'用作后备 . (匿名)@jquery.min.js:2 jquery.min.js:2拒绝加载字体'http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/fonts/glyphicons-halflings-regular.woff'因为它违反了以下内容安全策略指令:“default-src'self'data:gap:https://ssl.gstatic.com'unsafe-eval'” . 请注意,'font-src'未显式设置,因此'default-src'用作后备 . (匿名)@ jquery.min.js:2 jquery.min.js:2拒绝加载字体'http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/fonts/glyphicons-halflings-regular.ttf'因为它违反了以下内容安全策略指令:“default-src'self'data:gap:https://ssl.gstatic.com'unsafe-eval'” . 请注意,'font-src'未显式设置,因此'default-src'用作后备 . (匿名)@jquery.min.js:2 http:// localhost:8013 / favicon.ico无法加载资源:服务器响应状态为404(未找到)

1 回答

  • 2

    在我们的聊天中回答这个问题,但对于其他人来说这是简短的答案 . 把你的网址放在'unsafe-inline'前面的css文件中,所以它是

    style-src 'self' bootstrap.css 'unsafe-inline';
    

    在jquery和bootstrap.js之前,你需要在script-src中使用'self' .

相关问题