请教关于POST的效率和安全问题
发布于 10 年前 作者 imgqb 4421 次浏览 最后一次编辑是 8 年前

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);

顺带请问 这个站怎么会自动退出登录,编辑了好几遍

17 回复

楼主可否贴代码

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 楼说得很好。大概也就他们说的那样了。

回到顶部