Tag: content security policy

头盔CSP不能在Safari浏览器中工作

Safari中有没有其他人对Helmet的内容安全策略有任何疑问? https://github.com/helmetjs/helmet app.use(helmet.contentSecurityPolicy({ directives: { defaultSrc: ["'self'"], scriptSrc: ["'self'",'code.jquery.com','cdnjs.cloudflare.com'], styleSrc: ["'self'","'unsafe-inline'",'fonts.googleapis.com','cdnjs.cloudflare.com'], imgSrc: ["'self'"], fontSrc: ['fonts.googleapis.com','fonts.gstatic.com','cdnjs.cloudflare.com'], connectSrc: [], }, reportOnly:false, setAllHeaders: false, disableAndroid: false })); 这在Chrome,Firefox和IE中运行良好。 但我在Safari中得到这些错误。 Safari错误

cordova – 拒绝连接到设备的API(内容安全策略)

我正在使用Visual Studio的Apache Cordova工具。 当我用Ripple构build应用程序时,一切都很好。 但是,当我build立到我的Android设备,应用程序拒绝连接到我的外部API。 这是JavaScript控制台日志中的错误: 拒绝连接到“ http://XXX.herokuapp.com/api/posts/0/5 ”,因为它违反了以下内容安全策略指令:“default- src'self'data :gap: https:// ssl。 gstatic.com'unsafe -eval'“。 请注意,“connect-src”没有明确设置,因此“default-src”被用作后备。 和: 错误:无法执行“XMLHttpRequest”上的“打开”:拒绝连接到“http:// XXX”。 herokuapp。 COM / API /帖/ 0 / 5' 我的API是用Node.js构build和expression的。 在我的server.js中有Access-Control-Allow-Headers,但它仍然不能在我的设备上工作。 Server.js: //'use strict'; var express = require('express'); // call express var app = express(); // define our app using express var bodyParser = require('body-parser'); var methodOverride […]

在单个路线上实施头盔CSP

我正在创build示例Express应用程序来演示Content-Security-Policy(CSP)头文件,并试图使用helmet-csp 。 所有helmet-csp的文档都显示它通过app.use(csp({ … }))作为标准的第三方中间件 – 这将CSP头添加到我的应用程序中的每条path,但是我想要自定义它在个人路线上。 示例应用程序 var express = require('express'); var http = require('http'); var csp = require('helmet-csp'); var app = express(); app.use(csp({ directives: { frameSrc: ["'none'"] } })); app.get('/', (request, response) => { response.send('hi, :wave: =]'); }); app.get('/frameable', (request, response) => { response.send('you can frame me!'); }); http.createServer(app).listen(80, (err) => { if […]

内容安全政策侵犯新鲜的Ember应用程序

今天,我用ember-cli创build了我的第一个Ember应用程序: ember new my-app cd my-app ember serve 以便它通过url localhost:4200显示 。 我在下一步失败: 更改基本模板application.hbs的内容 在我执行一些文本更改后,我打了Cmd + S并重新加载页面内容保持不变。 浏览器控制台是“干净的”,但我在terminal得到错误信息 违反内容安全政策:{} application.hbs的内容: <h2 id="title">This is a test message</h2> {{outlet}} 我的环境:ember版本:0.2.3,节点:0.12.2,npm:2.7.6。 我已经在Stack上search了答案,但是大多数情况下他们都关心那些有外部数据请求的应用程序,但是我的项目是全新的,所以我很困惑。 期待您的回复,谢谢! 更新: 一些额外的信息: 我发现问题是,当一个文件被改变时,应用程序不会“听到”触发器。 我没有收到 file changed templates/application.hbs 在terminal通知。 全局性的东西阻塞或中断正常的应用程序运行。 仍期待收到您的build议!

如何从Node.js / Express中的请求中检索实体正文(针对CSP违规报告)?

我有兴趣为我的Node.js应用程序实现内容安全策略(CSP)。 Mozilla的文档相当有帮助,但我坚持如何启用违规报告 。 我了解他们如何工作的基本前提(浏览器向指定的URL发送POST请求以通知网站违规),但无法find在HTTP请求中find描述违规的JSON文档的位置。 也许这对于更熟悉HTTP规范的人来说是显而易见的。 看看CSP的W3C草案 ,我确定了JSON包含在称为“实体主体”的HTTP部分中。 我仍然不知道这个实体的目的是什么(我能find的唯一有用的页面是来自HTTP规范的)。 我假设它是请求的主体。 也许更重要的是,我找不到任何方法来检索实体的内容。 我想使用req.header('entity-body')但不起作用的实体不是一个HTTP头。 这是什么以及如何获取? (另外,我试图find一个关于如何在Node.js中实现CSP违规报告的教程,并没有发现任何东西。我确实find了一个PHP,但它并没有特别有用,引用了一个file_get_contents('php://input')我在Node.js / Express中没有类似的东西。) 任何援助将不胜感激。

尝试呈现i帧:祖先违反了以下内容安全策略指令:“frame-ancestors'none'”

我想呈现一个iframe的来源是Github像这样: <iframe src="https://gist.github.com/user45445/9bf8d568e3350146ba302d7d67ad576f"> </iframe> 这是我在控制台中得到的错误: Refused to display 'https://gist.github.com/fresh5447/9bf8d568e3350146ba302d7d67ad576f' in a frame because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'none'". 我正在研究如何在我的Node服务器中指定我的Content Security Policy ,指定它应该接受来自github任何iframe 所以我安装了csp-helmet,并将其添加到我的服务器代码中: var csp = require('helmet-csp') app.use(csp({ // Specify directives as normal. directives: { frameAncestors: ['*.github.com'], //I thought these two did the same, so I tried them both. […]

node.js – 使用头盔修正socket.io(web套接字)的内容安全策略

我试图在节点服务器中实现内容安全策略(CSP),并且在设置socket.io时遇到困难。 它看起来像我在下面的代码中设置不正确的connectSrc 。 有人可以build议正确的方式来设置头盔,以便浏览器允许Web套接字连接吗? 提前致谢! 我正在使用头盔模块生成CSP; 以下是设置CSP的代码: securitySetup = function(app) { var connectSources, helmet, scriptSources, styleSources; helmet = require("helmet"); app.use(helmet()); app.use(helmet.hidePoweredBy()); app.use(helmet.noSniff()); app.use(helmet.crossdomain()); scriptSources = ["'self'", "'unsafe-inline'", "'unsafe-eval'", "ajax.googleapis.com"]; styleSources = ["'self'", "'unsafe-inline'", "ajax.googleapis.com"]; connectSources = ["'self'"]; return app.use(helmet.contentSecurityPolicy({ defaultSrc: ["'self'"], scriptSrc: scriptSources, styleSrc: styleSources, connectSrc: connectSources, reportUri: '/report-violation', reportOnly: false, setAllHeaders: false, safari5: false […]