nodejs作为http服务器有多健壮?

如果我使用nodejs的http模块来创build一个简单的http服务器,那么我需要做多lessvalidation/检查?

该模块是否处理诸如格式错误的请求和具有恶意标头值的请求之类的安全问题? 模块是否确保遵循http规范,还是必须进行大量检查以确保服务器不易崩溃?

编辑:让我们说nodejs不做任何真正的validation,我敢肯定是这样的。 我必须做些什么来确保我的服务器不易被破坏?

什么是恶意标头值? 节点是低层次的,所以很多东西都不被检查。 但是你必须看看这些东西。 但它不像有人可以发送“执行0xFA894224”什么的。 唯一可能出现的漏洞就是允许格式错误的请求(例如,也许你可能会得到request.location: "\*\*\* CHINAAA \*\*\*" ,忘记启动套接字closures事件,或者抛出JavaScript错误并正常终止。

您可以随时检查自己是否有这些东西,或者使用try catch块,process.on等。当然,这并不是说可能没有缓冲区溢出或某处存在某种东西,但是不太可能将节点构build在顶层的V8,许多图书馆是纯粹的JavaScript

编辑:如何停止随机崩溃:

 process.on('uncaughtException',function() { /* ignore error */ }); 

NodeJS并没有被用作面向世界的HTTP服务器。 但是,HTTPfunction可以用来代理请求到适当的Web服务器。

离题,但Nginx真的很擅长,因为它拥有稳定的线程数量。