Tag: 安全性

只允许来自移动应用程序的请求到Node.js服务器?

我有两个应用程序Android和iOS通信到一个后端Node.js服务器。 有没有办法只允许来自这些应用程序的请求? 像某种API键的方法? 我试图想办法从只有这些应用程序过滤请求,但我想我卡住了。 我们确实有一个身份validation令牌系统的login,但什么是阻止用户采取相同的标记和虐待外部应用程序的请求? 我正在考虑encryption所有来自移动应用程序的请求,并以相同的方式在后端解密,但担心需要大量的计算。 什么是阻止用户采取相同的encryption请求,并滥用它呢? 我想我正在寻找的是一些很好的安全措施,可以防止这种滥用,而不会对后端的效率造成太多的阻碍。

node-js服务器安全性,以及react-native客户端

林想知道是否有办法只接受来自目标react-native应用程序的http请求。 我的意思是,目前,我的nodejs服务器(使用express)接受来自任何方式的连接(甚至邮递员请求)。 有没有办法让服务器只听所需的应用程序?

将使用HTTP进行的API调用redirect到我的服务器到HTTPS是安全的吗?

我有一个通过REST API与HTTP通信的Nodejs服务器。 我现在想改变从HTTP到HTTPS的所有请求的传输协议。 问题是我无法更改客户端代码。 我想知道是否将服务器上的所有HTTP请求redirect到https足以使数据与encryption一起发送。 或者,如果我必须修改在客户端上运行的代码,并使用HTTP协议进行请求。 我必须这样做,因为数据不应该被清晰地发送,因为有一些敏感的数据被发送(用户名,密码,位置信息)。 谢谢。

检查node.js中的实际文件types

我想阻止人们通过向我的头像上传端点添加jpg扩展来上传电影文件或shell脚本。 我没有编写后端长时间上传脚本,但我记得PHP能够告诉我实际的文件types,而不仅仅是基于文件扩展名的types。 我也可以单纯地检查这个前端JS。 或者在Java中有http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#probeContentType%28java.nio.file.Path%29 这个问题是在香草节点,并使用一堆mime相关模块,包括mmmagic ,只是基于文件扩展名返回MIMEtypes。 例如,我删除了gif文件的gif扩展名,并将其改为txt ,Node和mmmagic只是返回text/plain 。

AWS,NodeJS – 将应用程序连接到另一个EC2实例上的Mongodb

我试图将运行在一个EC2实例上的应用程序连接到在另一个EC2实例上运行的MongoDB。 我很确定问题出在安全设置,但我不太清楚如何处理。 首先,我的应用程序的实例位于ELB后面的自动调整组中。 实例和ELB的入站安全设置允许从任何地方访问端口80,以及来自其自身安全组的所有stream量。 运行Mongo的EC2实例能够在该实例的安全组接受来自任何地方的所有入站通信的情况下进行连接。 我试过的任何其他configuration都会导致应用程序说它无法与远程地址build立连接。 我已经设置了规则来接受来自我拥有的所有安全组的入站stream量,但只有当我允许来自任何地方的所有stream量时,它似乎才起作用。 此外,我的数据库实例设置了一个弹性ip。 我应该在ELB背后有这个实例吗? 所以我的问题是这样的: 1)如何安全地连接到运行mongo的EC2实例? 2)在体系结构方面,以这种方式运行我的数据库是否有意义,还是应该在负载平衡器后面加上这一点? 这个问题比我想象的要多得多,所以任何帮助,将不胜感激。 注意 我还在bind_ip=0.0.0.0设置了bind_ip=0.0.0.0

使用ssl保护来自节点的服务调用

我正在尝试保护从我的节点到其他服务安全的服务调用。 所有其他服务都启用了https。 我尝试了以下方法 process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0' 根据我的理解,忽略所有从代码中删除的错误,因为证书 我正在使用request模块。 我们可以在哪里configuration key – 提供我的私钥文件, cert – 提供我的证书文件 ca – 证书authorty链 那么它会抛出UNABLE_TO_VERIFY_LEAF_SIGNATURE 我发现节点不会从系统读取ca。 它有自己的ca链因此,我包括从网上获取最新的cas 节点的ssl-root-cas 。 然后使用SSL分析器,我能够find我的域没有中间的CA证书 我从我们的网站上下载并制作了一个ca链,并将它连接到ssl-root-cas 然后,我能够成功地提出请求 但即使我从我的要求中删除钥匙和证书,我可以提出要求并获得结果。 我怎样才能检查我的请求和响应实际上是encryption的? 或者节点只是忽略错误,

Node.JS,我的密码在RAM中安全吗?

我有一个小的web应用程序,允许人们使用Express和Node.JS创build人物页面。 每一页都是一个对象,这意味着你可以使用new privatePage(name, pswd)创build一个新的对象,因此所有的密码都存储在对象的pswd属性中。 我的问题是,他们在这里安全,还是很容易“黑客”? 编辑:我的密码只需要平均最长保存24小时,因为如果页面在短时间内不活动,页面会自动删除。

mosca MQTT代理的安全密钥和证书

我试图build立基于node.js的Mosca MQTT代理 从下面的文档中, https://github.com/mcollina/mosca/wiki/TLS-SSL-Configuration var mosca = require('mosca') var SECURE_KEY = __dirname + '/../../test/secure/tls-key.pem'; var SECURE_CERT = __dirname + '/../../test/secure/tls-cert.pem'; 我在哪里得到tls-key.pem和tls-cert.pem ?

将自定义login表单添加到hapi-auth-basic

我使用hapi-auth-basic来authentication用户。 我的问题是如何添加自定义login表单,而不是使用浏览器的基本forms。

在节点JS的权限

我正在使用快递和续集制作应用程序。 有用户和pipe理员。 现在,我正在通过中间件处理权限。 说有一个消息,用户可以改变: var Message = sequelize.define('Message', { content: Sequelize.STRING, secret: Sequelize.STRING }); var message = Message.build({ content: 'i like frogs', secret: 'i like hogs more!' }); app.put('/message', requireRole('user'), function(request, response) { message.updateAttributes(request.body.content); response.writeHead(200); response.end('secret updated'); }); 我想有一些更复杂的权限。 什么是这样做的好方法? 在这个例子中,我希望用户能够更新消息的content ,但不是它的secret 。 我可以把它烧成每一条路线,但是随着车型的改变,似乎会变得很痛苦。 app.put('/message', requireRole('user'), function(request, response) { var attrs = {}; var role […]