Tag: 安全

Node – Express 4 csrf

随着Express 4连接的曙光不再是依赖。 我无法在快递网站上find任何新的csrf实施。 旧的方式是app.use(express.csrf()); 然后添加一个中间件函数来在视图中显示它。 我的问题是:我现在不得不把连接作为一个依赖项,或者是有一些现在expression的东西,允许我错过了csrf? 或者我可以只包含csrf的来源到我的应用程序?

使用encryption的cookie和会话存储来保护请求

我最近注意到,我正在咨询的应用程序正在使用未encryption的cookie。 前端(Angular)定期使用以下内容来提取用户标识: var user_id = JSON.parse($cookies.userdata).id; 我想象一个不愉快的访问者可以不断地使用他们的浏览器来改变他们的ID和访问他们不应该的资源。 这是一个巨大的红旗,我可以用一些帮助支持这一点。 这看起来像一个足够坚实的指导 ,但我并没有把自己的想法围绕在不同的部分。 如果我使用Mozilla的客户端会话,那么cookie中存储了什么? 任何我想要的? 我有诸如GET /api/v1/user/:user_id API路由来返回关于用户的信息。 如果Cookie在浏览器中被encryption,我将失去访问当前user_id并进行此API调用的能力。 我的行动计划是什么? 为这个API创build一个代理服务器端,首先解密cookie,提取user_id , 然后调用GET /api/v1/user/:user_id ? API路由被一个函数保护, req.isAuthenticated() === true ,如果有帮助的话。 鉴于以上情况,会议在什么时候开始? 假设我在MongoDB中存储用户会话。 我们知道cookies只能存储4kb,但如果这样就足够了? 应该在cookie中存储什么types的数据以及应该在用户会话中存储哪种数据? 你的回答将会是一个很长的路要走,清理一些对我来说有点黑盒子的概念。

Node.js HTTP服务器 – 如何保护

目前我的HTTP服务器有以下configuration: curl -i http://localhost:3000 HTTP/1.1 200 OK Access-Control-Allow-Origin: * Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS Access-Control-Allow-Credentials: true Access-Control-Max-Age: 86400 Access-Control-Allow-Headers: X-Requested-With, Access-Control-Allow-Origin, X-HTTP-Method-Override, Content-Type, Authorization, Accept Date: Tue, 10 Dec 2013 22:31:40 GMT Connection: keep-alive Transfer-Encoding: chunked 尊重访问控制条目。 这些表明服务器的发送和接收是什么? 我最好尽可能地减less这个清单? 这是否意味着服务器可能更安全,因为访问它的方法较less? 谢谢

使用Express JS的JSON漏洞防护

我想知道如何在express.js中使用JSON漏洞保护。 http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx 问题是我用来从控制器写入res.send(jsonObj),它将直接发送数据到客户端。 但是我想拦截回应并用某些东西修改并发送给客户端。 客户端然后可以撤消修改并检索原始数据。 我看到了res.format函数,但它不能满足我的需要。

nodejs / socket.io与node-mysql | 安全混乱

所以我开始研究node-mysql,因为我的整个站点都是用PHP构build的,但是我想用node / socket.io来实现平滑的asynchronous用户端更新。 然而,有一个问题,我看到与node-mysql,我还没有得到一个答案呢。 mysql服务器的login信息如何不公开信息? 根据文档https://github.com/felixge/node-mysql你连接到数据库就像这样 var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'me', password : 'secret', }); connection.connect(); connection.query('SELECT 1', function(err, rows, fields) { if (err) throw err; console.log('Query result: ', rows); }); connection.end(); 那么是什么阻止用户将服务器文件放入导航栏并查看mysql服务器的login信息呢? 我对此感到非常困惑,有人可以向我解释吗?

用户系统的边缘情况

所以,我正在为我的node.js web框架写一个用户/authentication系统。 从可用性或安全angular度来看,我应该关注哪些边缘案例?

从用户电子邮件创build用于电子邮件validation的散列/标记

任何人都可以帮我解决什么用来创build一个用户input(电子邮件地址)的安全令牌(或哈希)。 我想做一个电子邮件validation系统注册。 用户使用电子邮件地址和密码进行注册 我想创build一个独特的URL,我将发送给用户(因此问题) 我将这些(安全明智)存储在临时表中 用户通过发送的URLvalidation自己 我的问题是这个url应该如何。 我想我应该通过编码电子邮件地址,将其保存为唯一的,将url保存到临时表,当用户打开链接,我会比较这两个。 如果匹配,我会将凭据移动到真正的表。 你有什么好的资源关于这个话题。 我在后端有nodejs。 谢谢

如何安全地存储和使用客户的AWS密钥

在我的服务器上存储客户的密钥和访问密钥ID是否可以接受,以便我可以代表他们访问AWS API? 对于密码,只需要使用散列来存储encryption版本,但每次我呼叫AWS时都需要使用实际的密钥值,所以我不能对其进行散列。 简而言之,对于每个经过身份validation的用户,我将存储一个对象,如下所示: {userdId: [myUserId], secretKey: 'jHuiU-jiuhd…', accessKeyId: 'abcdef…', etc} 每次我打电话给AWS,我都可以访问它。 现在,我可以base64对它进行编码和/或甚至自己对它进行encryption,但是在某个阶段,我必须对它进行解码和解密才能提出请求,而我需要做的这些选项将存储在服务器上的某个位置。 如果数据保存在服务器上 – 永远不会发送回客户端 – 如果从服务器到AWS的传输是通过SSL完成的,那么这是否足够了?

使用node-webkit本地安全密码

我必须在我的应用程序本地保存密码。 不幸的是,我不能只是散列它们,因为每次应用程序启动时都必须使用它。 有没有可能保存密码,并保持所有其他程序远离打开它。 我从Android知道,你不必介意这一点,因为操作系统做的一切。 node-webkit(Windows)中是否也有可能? 提前感谢!

REST API安全性和CrossPlatform

我正在用node.js工作其余的api。 我在/注册端点中创build了jwt-token。 然后发送这个令牌每个iOS应用程序,Windows Phone应用程序请求Authoriziton头。 所以API试图find包含这个令牌的用户。 如果它已经返回响应。 我担心安全。 每个人都将监控创build用户的API地址,并获取令牌,然后使用此令牌的所有端点。 所以会发布数据到其他模式和应用程序无用数字,死亡。 如何防止这种情况? 本机iOS,Windows Phone应用程序和用于此API的网站。 处理安全性和用户pipe理的最好方式有点像跨平台应用程序的API? 这个结构是否有很好的文档? 有用户scheme。 var userSchema = mongoose.Schema({ token:String, favorites:[favorites], local : { username:String, email: String, password: String, sex:Number }, facebook: { id:String, token:String, email:String, name:String }, lists:[{listid:String,insertdate:Date}] }); 每个端点控制这样的授权 function ensureAuthorized(req, res, next) { var bearerToken; console.log(req.headers); var bearerHeader = req.headers["authorization"]; if (typeof […]