我目前正在我的大学进行移动网络应用程序开发课程的介绍,并且正在努力在我的秘银应用程序上设置引导程序。
我以前在“普通” Web应用程序上设置了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”因为 它违反了以下内容安全策略指令: “脚本-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'数据: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'数据:gap:https://ssl.gstatic.com'unsafe-eval'”。 请注意,'font-src'未显式设置,因此使用'default-src' 作为后备。
(匿名)@ jquery.min.js:2 http://localhost:8013/favicon.ico失败 加载资源:服务器响应状态为404(不是 实测值)
答案 0 :(得分:2)
在我们的聊天中回答这个问题,但对于其他人来说这是简短的回答。将您的网址放在'unsafe-inline'前面的css文件中,因此它是
style-src 'self' bootstrap.css 'unsafe-inline';
在jquery和bootstrap.js之前,你需要在script-src中使用'self'。