Articles of security

以编程方式安全地将数据发布到https端点,不需要浏览器

如果以编程方式(不通过浏览器)向https端点发布数据,数据是否安全? 我的理解是浏览器encryption数据并将其发送到https端点。 Ruby或Node.js或其他程序如何做同样的事情?

保持数据库安全的API密钥和访问细节

保持数据库安全的API密钥和访问细节的最佳做法是什么? 我们将部署Nodejitsus jitsu deploy所以我的想法是有一个configuration文件不会是git的一部分。 我们目前的configuration文件,我将.gitignore'd module.exports = (app) -> app.configure 'development', -> global.config = dbUrl: 'mongodb://username:password@host:port/closet' foursquare: client_id: 'xxx' client_secret: 'xxx' redirect_uri: 'http://127.0.0.1:3000/account/auth/foursquare/done' return app.configure 'production', -> global.config = dbUrl: 'mongodb://username:password@host:port/closet' foursquare: client_id: 'yyy' client_secret: 'yyy' redirect_uri: 'http://example.com/account/auth/foursquare/done' return return

网站使用前端的骨干和后端的nodejs

我正在开发一个新的网站,这将是一个单一的分页应用程序与一些对话框/模式窗口。 我想用前台的骨干。 这将使用ajax / websockets调用后端,并使用模板呈现结果的json。 作为后端,我将使用nodejs express应用程序,它将返回客户端所需的json,它将是某种API。 这将不会使用服务器端的意见。 客户将使用Facebook,Twitter等进行身份validation,也可能是自定义registry单。 客户端静态资源(例如css,js和html文件)将由nginx(稍后的CDN)处理。 我现在的问题是: 我怎样才能确定一个给定的用户有权在API中执行某些操作(即删除一个build筑物,创build新的build筑物)? 这是授权问题,我想在login时给用户一个angular色,并根据它来决定他们的权利。 这会工作吗? 类似上面的问题,这个基于angular色的安全性是否足以保证api? 或者我需要添加一些像令牌或请求签名? 这个架构是可以接受的吗?或者我正在过度工程并使之复杂化?

在屏幕抓取应用程序中使用静止存储凭据的合理安全方法是什么?

借助PhantomJS,CasperJS允许您在应用程序启动时指定要加载的JSON文件。 我有我的凭据存储在这个文件,这是比在源文件中硬编码好一点: var json = require('testfile.json'); var username = json['username']; var mykey = json['mykey']; 我仍然将服务器上的凭据以纯文本forms存储,我希望远离这些凭据。 这个过程将被自动化,所以我不能通过命令行parameter passing凭据,也不会在Windows任务计划程序中存储参数。 什么是安全的方式来存储这些信息呢?

rails和nodejs之间的安全性

我有一个应用程序,主要是在轨道上,但也使用nodejs的一些实时function,例如聊天。 用户通过Railslogin并像往常一样分配会话等。 但是,与同一用户进行身份validation的最佳方式是什么? 例如,我想阻止用户模仿对方,但现在在rails上完成login,并在nodejs上完成消息传递。 Rails和nodejs都可以访问同一个数据库。 如果有问题,我正在使用devise和插件。

阻止访问AngularJS中的pipe理页面

我想知道AngularJS中最好的方法是保护pipe理页面,即普通用户不应该看到的页面。 显然,会有后端authentication,但由于AngularJS应用程序是客户端,人们仍然可以从理论上看路由,直接转到这些URL并查看pipe理页面。 我使用Express,PassportJS和MongoDB(Mongoose)作为我的后端。 自然,他们将无法与pipe理页面进行交互,因为在创build,删除服务器端身份validation,但我宁愿甚至不提供页面给用户,如果他们没有适当的访问。 由于该应用程序是完全客户端JS,但我认为这是不可能的,因为人们可以修改路由和其他东西。 最好的办法是什么呢? 感谢您的任何意见!

如何保护Socket.IO?

我一直在与Socket.IO工作几天,这是非常令人兴奋,更令人沮丧的。 缺乏当前的文档/教程使得学习非常困难。 我终于成功地创build了一个基本的聊天系统,但有一个明显的问题。 我如何保护它? 什么阻止恶意用户复制(或编辑)我的代码并连接到我的服务器? 我可以从我的PHP脚本中获取用户名,并将其提交给Socket.IO,以便我可以将它们识别为该用户(并且PHP当然具有安全性),但是阻止某人提交未注册的用户名? 我怎样才能确保提交的事件是真实的,没有被篡改? 我的基本socket.io聊天的参考。 服务器: var io = require('socket.io').listen(8080); var connectCounter = 0; io.sockets.on('connection', function (socket) { connectCounter++; console.log('People online: ', connectCounter); socket.on('set username', function(username) { socket.set('username', username, function() { console.log('Connect', username); }); }); socket.on('emit_msg', function (msg) { // Get the variable 'username' socket.get('username', function (err, username) { console.log('Chat message by', […]