使用node.js开发http服务器时的主要漏洞是什么

专业ROM

我读过的最明显的漏洞是XSS,但是在开发节点应用程序时,我想知道最大的漏洞是什么以及修补这些漏洞的最佳实践。我正在使用http模块(带有节点的库存)来处理请求。这基本上是我的请求处理代码:

var server = http.createServer(function (req, res) {
    var urlparse = url.parse(req.url, true);
    if(urlparse.pathname == "api endpoint") {
        //pass POST data into other functions and return those functions' results
    } else if (urlparse.pathname == " another api endpoint") {
        //and so on...
}

我的主要担心:

  1. 当不使用数据库时,是否需要清理用户输入?
  2. 使用node-mysql时是否需要清理用户输入
  3. 是否还有其他与用户输入清理无关的漏洞?
账单

您从客户那里获得的所有东西都必须被视为不受信任。从他们给您的输入,到他们使用的查询字符串,到他们提交的表单数据,到他们调用的url,再到被传送的cookie,都应被视为不受信任,并且需要进行验证/清除。没有足够多的客户端验证就足够了(尽管这有助于用户体验)。无论是否使用数据库,所有内容都必须在服务器上进行验证。私有会话数据应使用Cookie ID引用保存在服务器上,而不是将数据本身传递给客户端。

此外,您在客户端上显示的所有不受您100%控制的内容也必须被视为不受信任,并且需要先进行正确的转义。您还需要使用适当的权限来保护所提供的文件,如果有人能够登录到您的服务器,则使文件更难以遭到破坏(一旦丢失了服务器,您就失去了所有东西,但至少可以做到这一点)越困难越好)。

这是很多工作,但是从好的方面来说,如果您只是学习和构建一个小型网站,您可能就不会成为大多数更老练的黑客(他们喜欢比您的服务器更大的目标)的雷达。只要您采取一些基本的预防措施,就可以使用良好的密码/ ssl适当地锁定服务器,并进行一些基本的Web强化操作,这样就可以了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

快速使用webpack开发服务器的目的是什么?

我的node.js服务器的域名是什么?

同时使用Node.js中的许多MySQL服务器的正确方法是什么?

使用应用服务器的主要好处是什么?

使用Node JS的肥皂服务器

Node.js-Socketio无法与https服务器一起使用,这可能是什么原因?

Vue.js 开发服务器在使用纱线服务时增加端口?

Node.js HTTP服务器

使用docker / fig运行Django开发服务器时,为什么某些日志输出被隐藏?

生产服务器主要使用哪个平台来开发和部署“应用服务”

为什么Node.js简单的HTTP服务器应用程序无法在服务器上运行?

基于Node.js的服务器与类似Apache HTTP服务器的服务器

PyCharm node.js服务器在使用nvm时使用某些npm版本

使用Electron(Atom Shell)时,客户机/服务器模型是什么?

为什么Node.js HTTP服务器不响应来自Python的请求?

node.js中的http Web服务器需要什么中间件?

在node.js上使用http服务器监听多个主机

如何在Node.js服务器上使用HTTP POST数据?

使用Postman发布到Node服务器时出错

使用ImageMagick的Node.js,为什么服务器未被阻止?

如果我在Node.js服务器中使用socket.setKeepAlive会发生什么

如果在服务器端使用Node js,为什么需要异步处理?

使用Node.js和MySQL时服务器响应上的TypeError

使用PM2时,Swagger管理的Node.js服务器崩溃

在本地使用Node.js时客户端和服务器的时间不同

尝试在Node.js / Puppeteer中使用代理服务器时出现错误

错误:使用Node.js连接到mysql服务器时,读取ECONNRESET

使用RapidSSL证书时,Node.js HTTPS服务器未响应

在服务器端使用Node JS解析HTML