Tag: 安全性

将会话密钥存储在本地存储中

好的,我有一个用node.js编写的API,我试图添加会话function。 API是完整的RESTful。 当用户login时,我通过GET ajax调用向/ login端点发送用户/传递组合。 服务器然后盐的密码,并将其与我的mongo数据库中存储的哈希比较。 然后根据login的成功情况,它会以真或假回应。 我想实现的是这样的:当用户input一个有效的login时,服务器生成一个会话密钥。 这个密钥存储在用户文档中的mongo中。 这个会话密钥然后与GET请求一起返回。 这个会话密钥将被包含在所有未来请求的JSON体中,以允许用户访问他们的账户信息。 我的问题:是否安全的存储这个会话密钥在浏览器的localStorage或sessionStorage? 这会打开用户的任何漏洞?

在Node.js中支持MySQL的ACL

我正在使用Node.js与MySQL。 在npm中是否有一个支持node.js和MySQL的ACL库? 我没有find类似的问题在stackoverflow的答案。

bcrypt.compare是否容易受到定时攻击?

在Node.js web开发中,我将其看作是使用bcrypt进行散列和比较密码的常见做法。 bcrypt.compare是否容易受到定时攻击 ?

postgresql pg.Pool连接池凭证的安全性

如何在node.js实现中安全地存储postgresql pg.Pool连接池凭证? 将configuration对象设置为传递给pg.Pool后,它将以未encryption方式存储在Pool对象中,这意味着它始终在内存中可见。 pg.Pool是否有一个callback机制,它可以调用你的函数只在需要凭证的时候dynamic解密,或者以某种方式将其保存在其他地方,而不是将其存储在池对象中,目的是保持内存不足延长的时间在一个未encryption的状态? 请指教。

NodeJS OAuth2.0原则

最近我正在研究一个nodeJS项目,我正在考虑如何去实现我的移动应用程序的安全模块。 我曾经使用过C#项目中使用的OAuth 2.0协议。 在.NET中有两个很好的开源项目 https://github.com/thinktecture/Thinktecture.IdentityServer.v3 https://github.com/thinktecture/Thinktecture.AuthorizationServer 前者是支持联合身份validation的身份提供者,后者是OAuth 2.0提供者。 所以我决定为我的nodeJS应用程序使用相同的安全基础结构。 但据我所知,这些项目没有什么相同之处。 我发现了一些非常好的项目,这些项目还没有完成,但是一个好的开始: https://www.npmjs.org/package/node-oauth2-server https://github.com/domenic/restify-oauth2 另外,我遇​​到了一篇不错的文章,提出了一个在nodeJS中处理身份validation的好方法。 https://auth0.com/blog/2014/01/07/angularjs-authentication-with-cookies-vs-token/和一个类似的答案在stackoverflow上的查询。 在网站和自有API之间进行身份validation 据我所知,expressJwt守卫我们的api,基本上会validation用户发送的访问令牌。 但我想更进一步,将令牌与应用程序特定的作用域相关联,与OAuth2.0协议类似。 因此,例如,我想分配一个写,读等范围,并expressJwt检查用户的令牌是否具有作为特定的API端点访问所需的范围。 如果您能提供一些关于如何处理这个问题的build议,我将不胜感激。

在没有用户authentication的情况下保护REST API(无凭据)

我一直在挣扎2天,如何保证REST API没有用户authentication。 这是什么意思 ? 在我的AngularJS应用程序中,我通过发送一个GET请求到我必须使用的现有服务(companydomain / userinfo)来标识用户。 我不知道这是如何工作,因为我不是这段代码的作者,但重点是,我得到的响应中的用户信息作为JSON(活动目录名称,公司电话…)。 这是我必须确定一个用户。 我做了什么 现在,我发现很多资源谈论OAuth,独特的令牌等,但似乎没有什么符合我的问题。 我实现了一个令牌系统,但是由于我无法确定请求者的真实性,所以这是毫无用处的。 用户打开应用程序。 应用程序询问有关用户信息的服务。 companydomain /用户信息 应用程序根据返回的信息向服务器请求一个令牌(nodejs&express)。 / API /标记/获得/ {} USER_INFO 服务器生成一个唯一的令牌,并将其存储在内存中,有效期和拥有者。 如果用户存在(基于活动目录名称),服务器还检查表“授权用户”,如果没有添加新条目。 应用程序将每个请求的令牌发送到API。 / API /项/删除/ {} entry_id 我想你会发现这里有什么问题,攻击者可以很容易地向API发出一个损坏的请求来获取合法的令牌。 所以我的问题是: 我如何设法保护我的API,因为用户不使用凭据来validation? 我希望我的问题已经很清楚了,在这一点上,我甚至不确定如果不添加证书系统就能解决这个问题。

什么是防止api请求泛滥/滥用的策略?

我的服务器(节点)上有一个将新数据写入我的数据库的API。 要使用API​​,用户需要提供一个充当标识符的标记。 所以如果有人淹没我的数据库或滥用API,我可以告诉它是谁。 但是,我可以使用哪些技术来防止洪泛或挂起我的服务器的能力呢? 请注意,对API的大部分请求都是由服务器本身完成的,所以从理论上讲,我可能会从我自己的服务器地址中获得几十个请求。 我很想得到一些参考资料。 谢谢!

MEANJS:SocketIO中的安全性

情况 我在我的MEAN.JS应用程序中使用库的SocketIO 。 在NodeJS服务器控制器中 : var socketio = req.app.get('socketio'); socketio.sockets.emit('article.created.'+req.user._id, data); 在AngularJS客户端控制器中 : //Creating listener Socket.on('article.created.'+Authentication.user._id, callback); //Destroy Listener $scope.$on('$destroy',function(){ Socket.removeListener('article.created.'+Authentication.user._id, callback); }); 奥基。 效果很好… 问题 如果一个人(黑客或其他人)获得了用户的id ,他可以在另一个应用程序中在同一个频道中创build一个监听器,他可以监视发送给用户的所有数据。 例如所有的通知… 我怎么能做同样的事情,但更安全? 谢谢!

如何更有效地保护蒙古数据

我在我的项目中使用mongoDB,由于项目的需要,我在我的数据库中保存了大量的凭证数据。 我想知道,他们的networking服务器有多安全? 我现在使用passportJS进行身份validation。 我确实在所有的路由使用注册用户检查。 为了您的信息我使用 passportJS mongoose expressJS 的NodeJS Heroku的

离子应用程序中不受信任的节点代码 – 如何为我自己的应用程序定义和执行防火墙规则?

我有什么select可以更精细地控制一个应用程序的互联网访问,我正在开发? 我们正在开发一个离子应用程序,因此依赖于许多节点模块,这本身就是不可信的代码(参见HN讨论) 。 由于内容是明智的,我想安全地防止不可信任的以不希望的方式发送任何数据的可能性。 对于我的应用程序的function,它只需要谈谈一个单一的IP,但是我找不到一个方法来声明android或iOS的清单来声明:只允许与单个IP /域的域交谈。 有没有办法阻止(不受信任的代码)我自己的应用程序从/到其他地方说话? 优选地,安装应用程序的用户不应该关心任何附加的步骤。 最好是Android或iOs平台将允许在声明中声明我想限制互联网访问。 我看到一个可以定义自定义权限和意图,但在我的理解,本身并不允许我定义受限制的互联网访问。 我可以声明性地将我拥有的应用程序互联网访问权限限制在清单中的特定主机上吗? 如果没有,我需要的是一个应用程序防火墙。 通常情况下,会安装防火墙并为该应用程序设置防火墙规则。 但是,我不能要求应用程序用户安装和设置防火墙。 有没有办法在应用程序安装过程中使用一些脚本直接设置iftables规则? 如果没有,基于cordova为基础,我的应用程序与他们自己的浏览器和JS运行时。 我正在考虑故意瘫痪的节点,这样的socket.connect忽略参数,只是连接到所需的硬编码域,发送数据,只有打开套接字到给定的IP? 然而,这需要我改变c / c + +,我不是一个专家。是否有一个简单和干净的方法来做到这一点? 感谢您的提示!