CNode

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

Iimgqb发布于12 年前最后回复12 年前17 回复5272 浏览0 收藏

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)

Z
zengwenbing#1·12 年前

楼主可否贴代码

Y
youxiachai#2·12 年前

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

R
RicterZ#3·12 年前

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

L
leizongmin#4·12 年前

无代码无真相

I
imgqb#5·12 年前
I
imgqb#6·12 年前
I
imgqb#8·12 年前
D
dead-horse#9·12 年前

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

Y
youxiachai#10·12 年前

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

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

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

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

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

Z
zheng1#13·12 年前

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

S
softice#14·12 年前

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

Z
zengwenbing#15·12 年前

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

S
softice#16·12 年前

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

A
alsotang#17·12 年前

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

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