Node.js 开发指南中4.5介绍HTTP服务器与客户端那一节中提供了一个简单的POST栗子(73页),但作者在页底警告说“这种简单的方法有严重的效率问题和安全问题”。
想请教下,严重的效率问题主要是出在哪一部分,又会产生怎样的安全问题?
谢谢!
var http = require('http');
var querystring = require('querystring');
var util = require('util');
http.createServer(function(req. res){
var data = '';
req.on('request', function(chunk){
post += chunk;
});
req.on('end', function(){
post = querystring.parse(data);
res.end(util.inspect(post));
});
}).listen(3000);
顺带请问 这个站怎么会自动退出登录,编辑了好几遍
楼主可否贴代码
POST 的安全, 应该是 xss 和 csrf 吧
所以以后浏览器要抛弃POST纯用GET?
其实他说的是代码的安全和效率而不是POST。
无代码无真相
已上代码
这个我不懂饿
恩,说的肯定是代码
已上代码
https://github.com/stream-utils/raw-body 楼主可以看看这个模块是怎么来解析 post 的数据的
你的代码…跟POST 一毛钱关系都没啊…
书中给的代码就是如此,如果您有BYVoid编著的Node.js 开发指南,可以翻到第73页看一下。
@imgqb 你这个代码有问题,是不能完全正确运行的,认真检查一下是不是代码抄错了。
楼主可以从这个角度想想, 如果request没有把req的end发送过来, 会怎么样呢.
post += chunk; 这里需要限制post的最终大小,要是有人想不停的post,post会吃干净内存。
吃干净内存也不怕 可以通过chunk编码,服务器开始不知道响应字节多少,通过流那样边读边响应 这样既不会当网速慢的时候,储存在内存中爆满,而且也可以加快服务器响应速度
没有安全问题,效率又高的post应该是怎么样的?
7 8 9 楼说得很好。大概也就他们说的那样了。