Tag: 安全

如何使用id-aes256-GCM与Node.JSencryption? “TypeError:DecipherFinal失败”

我想要使​​用经过validation的encryptionscheme(如AES-GCM)在Node.js中encryption一些数据。 如果我运行以下示例代码 app.get("/test", function(req,res) { var key = "12345678901234567890123456789012"; var iv = "123456789012"; var cipher = crypto.createCipheriv("id-aes256-GCM",key.toString("binary"),iv.toString("binary")); var decipher = crypto.createDecipheriv("id-aes256-GCM",key.toString("binary"),iv.toString("binary")); console.log(decipher.update(cipher.update("bla"))); console.log(decipher.update(cipher.final())); console.log(decipher.final()); }); 我没有得到一个控制台输出,但错误消息“TypeError:DecipherFinal失败”。 如果我使用密码AES-256-CTRF而不是“id-aes256-GCM”,这个代码工作正常,并在控制台上打印“bla”。 我究竟做错了什么? 编辑: 进一步调查显示,cipher.update(“bla”)返回“â”(单个字符…奇怪),cipher.final()返回一个空string。 我认为这不能是一个正确的密文,至less应该有明文的大小…

从URL查询string直接提供的mongo查询有多危险?

我正在玩node.js , express和mongoose 。 为了使事情正常运行,我将Express查询string对象直接传递给了一个mongoose查找函数。 我感到好奇的是这种做法在现场应用程序中有多危险。 我知道一个RDBMS将非常容易被SQL注入。 除了“清理你的投入”的好build议,这个代码有多恶心: app.get('/query', function (req, res) { models.findDocs(req.query, function (err, docs) { res.send(docs); }); }); 这意味着aa获取请求到http://localhost:8080/query?name=ahsteele&status=a只会将以下内容插入到findDocs函数中: { name: 'ahsteele', status: 'a' } 这有很多原因会让人觉得不舒服,但这有多危险呢? 将查询parameter passing给mongodb的最佳做法是什么? 快递是否提供任何现成的卫生处理?

nodejs作为http服务器有多健壮?

如果我使用nodejs的http模块来创build一个简单的http服务器,那么我需要做多lessvalidation/检查? 该模块是否处理诸如格式错误的请求和具有恶意标头值的请求之类的安全问题? 模块是否确保遵循http规范,还是必须进行大量检查以确保服务器不易崩溃? 编辑:让我们说nodejs不做任何真正的validation,我敢肯定是这样的。 我必须做些什么来确保我的服务器不易被破坏?

Node.js https pem错误:例程:PEM_read_bio:没有开始行

我现在用node.js搞乱了login表单,我试着创build一个pem key和csr using openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem 但是,我一直在运行节点server.js错误 这是我的server.js var http = require('http'), express = require('express'), UserServer = require('./lib/user-server'); var https = require('https'); var fs = require('fs'); var options = { key: fs.readFileSync('./key.pem', 'utf8'), cert: fs.readFileSync('./csr.pem', 'utf8') }; var app = express(); app.configure(function(){ app.use(express.bodyParser()); app.use(app.router); app.use(express.static(__dirname + '/public')); }); […]

如何保护AJAX应用程序中的私人REST API

我知道发布了许多类似的问题,但是他们都没有提到用户可以访问代码的HTML / JavaScript应用程序。 我有一个用nodejs编写的私有REST API。 这是私人的,因为它的唯一目的是服务我的HTML5客户端应用程序(Chrome应用程序和Adobe Air应用程序)。 所以API密钥不是一个好的解决scheme,因为任何用户都可以看到JavaScript代码。 我想避免机器人在我的服务器上创build帐户,并消耗我的资源。 有什么办法来实现这个吗?

智威汤逊:什么是一个好的密钥,以及如何将它存储在Node.js / Express应用程序中?

首先,生成密钥的好方法是什么? 我应该用键盘上的许多随机键生成一个,但是必须有更好的解决scheme。 解释如何生成一个非常好的关键。 其次,什么是存储密钥的好方法? 我可以在我的应用程序configuration中编写密钥,但这意味着源代码的妥协将危及整个系统。 将密钥存储在Node.js Express应用程序中有什么好方法?

密码的Node.jsencryption

我目前使用以下encryption密码: var pass_shasum = crypto.createHash('sha256').update(req.body.password).digest('hex'); 你能否build议改进以使项目更安全?

Node.JS Webserver中的安全性

所以,我正在学习Node.JS的方法,到目前为止我都很喜欢它。 我有几个项目已经在工作,我想我可以利用nodejs。 不过,我担心安全问题。 如果我使用Node.JS的http模块编写一个自定义的networking服务器,我是否可能超级受到攻击? Apache / IIS已经有多年 (和多年)的专业团队将安全build设到他们的networking服务器,仍然有人继续发现漏洞。我的自制Web服务器可能会更容易攻击吗? 我可以专注于什么东西来build立一个安全的好层到我的networking服务器? 那里有没有好的文章涵盖了这个话题?

Node.js + Express.js用户权限安全模型

我们有一个应用程序,有两种types的用户。 根据用户login的方式,我们希望他们可以访问应用程序的不同部分。 我们如何实现一个安全模型来防止用户看到他们无法访问的东西? 我们是否将安全作为每条路线实施的一部分? 问题是,我们将有一些重复的逻辑请求。 我们可以将其转换为辅助函数,但是我们仍然需要记住调用它。 我们是否将安全性作为全局app.all()路由处理程序的一部分? 问题是,我们必须检查每条路线,并根据多种规则做不同的逻辑。 至less所有的代码都在一个地方,但是…所有的代码都在一个地方。