【发布时间】:2013-10-30 08:12:48
【问题描述】:
我在 node.js 上设置了一个 http 服务器,它监听 端口 80。但是,小于 1024 的端口通常需要提升权限。因此我不得不使用 sudo 来执行我的服务器:
sudo nodejs httpserver.js
人们说以root身份运行服务器是一个很大的不here,我应该使用1024以上的其他端口并将它们重定向到80,这样我就不必成为root来执行脚本。但为什么?什么是安全漏洞,有什么顾虑?
【问题讨论】:
我在 node.js 上设置了一个 http 服务器,它监听 端口 80。但是,小于 1024 的端口通常需要提升权限。因此我不得不使用 sudo 来执行我的服务器:
sudo nodejs httpserver.js
人们说以root身份运行服务器是一个很大的不here,我应该使用1024以上的其他端口并将它们重定向到80,这样我就不必成为root来执行脚本。但为什么?什么是安全漏洞,有什么顾虑?
【问题讨论】:
如果您的 httpserver.js 脚本中存在漏洞,攻击者可以让 node.js 进程运行任意代码,那么该任意代码将以 root 身份运行。而且您必须假设确实存在此类漏洞。
【讨论】:
setuid,使用 nginx 代理,无论如何。以 root 身份运行从外部可访问的 anything 只是愚蠢的......