在Node.js / Express.js中做这样的事情是否安全?
// use Object.create(null) so we don't have to worry about key collisons
// see http://www.devthought.com/2012/01/18/an-object-is-not-a-hash/
var theHash = Object.create(null);
exports.store = function (req, res) {
key = getUniqueKey();
theHash[key] = req.param('val');
// finish the request, &c.
}
exports.retrieve = function (req, res) {
res.end(theHash[req.param('key')]);
}
基本上,我正在构建一个短命的短URL服务,这似乎是一种简单快捷的方法。每24小时从哈希中删除项目,因此它不会变大。这样安全,还是需要使用某种数据库?
答案 0 :(得分:1)
如果你需要提示(根据评论),那么是的,这是糟糕的设计,但没有特别错误。
您最好使用Redis,内存密钥=>值存储。你所做的事情并没有错,但是你正确地注意到在本地保存你的密钥感觉“很脏”(出于几个原因,但关键是如果节点死了,你会失去一切)。