跳到主要内容
CNode

请教关于POST的效率和安全问题

社区
Iimgqb发布于 13 年前最后回复 13 年前
1753080

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)

A
alsotang#1713 年前

7 8 9 楼说得很好。大概也就他们说的那样了。

S
softice#1613 年前

没有安全问题,效率又高的post应该是怎么样的?

Z
zengwenbing#1513 年前

吃干净内存也不怕 可以通过chunk编码,服务器开始不知道响应字节多少,通过流那样边读边响应 这样既不会当网速慢的时候,储存在内存中爆满,而且也可以加快服务器响应速度

S
softice#1413 年前

post += chunk; 这里需要限制post的最终大小,要是有人想不停的post,post会吃干净内存。

Z
zheng1#1313 年前

楼主可以从这个角度想想, 如果request没有把req的end发送过来, 会怎么样呢.

L
leizongmin#1213 年前
引用 leizongmin无代码无真相

@imgqb 你这个代码有问题,是不能完全正确运行的,认真检查一下是不是代码抄错了。

I
imgqb#1113 年前
引用 youxiachai你的代码...跟POST 一毛钱关系都没啊....

书中给的代码就是如此,如果您有BYVoid编著的Node.js 开发指南,可以翻到第73页看一下。

Y
youxiachai#1013 年前

你的代码...跟POST 一毛钱关系都没啊....

D
dead-horse#913 年前

https://github.com/stream-utils/raw-body 楼主可以看看这个模块是怎么来解析 post 的数据的

I
imgqb#813 年前
I
imgqb#513 年前
L
leizongmin#413 年前

无代码无真相

R
RicterZ#313 年前

所以以后浏览器要抛弃POST纯用GET?
其实他说的是代码的安全和效率而不是POST。

Y
youxiachai#213 年前

POST 的安全, 应该是 xss 和 csrf 吧

Z
zengwenbing#113 年前

楼主可否贴代码

参与回复

登录后即可参与回复。登录