那么,我正在学习Node.JS,目前为止我非常喜欢它。我在工作中已经有几个项目,我认为我可以利用nodejs。
但是,我担心安全性问题。如果我使用Node.JS的http模块编写自定义web服务器,我是否容易受到攻击?Apache/IIS已经有了多年的专业团队来构建他们的web服务器安全性,但人们仍然不断发现漏洞...我的自制web服务器是否容易受到攻击呢?
我可以专注于哪些方面来构建一个良好的网络服务器安全层?有没有好的文章涵盖这个主题?
那么,我正在学习Node.JS,目前为止我非常喜欢它。我在工作中已经有几个项目,我认为我可以利用nodejs。
但是,我担心安全性问题。如果我使用Node.JS的http模块编写自定义web服务器,我是否容易受到攻击?Apache/IIS已经有了多年的专业团队来构建他们的web服务器安全性,但人们仍然不断发现漏洞...我的自制web服务器是否容易受到攻击呢?
我可以专注于哪些方面来构建一个良好的网络服务器安全层?有没有好的文章涵盖这个主题?
我同意anm和schaermu的观点,建议使用反向代理来保证应用程序不会被访问到,这与稳定性有关,而非安全性。
我想补充说明的是,您还需要考虑如何安全地安装Node本身及其模块。特别是千万不要使用以下方法安装npm:
curl http://npmjs.org/install.sh | sudo sh
这基本上是将根Shell授予使用不安全的HTTP从网络获取的任何内容,而且完全没有验证,甚至不知道你在和谁交流。这可能会导致使用非常基本和广泛已知的方法严重妥协您的整个系统,如果您的系统被攻击,则无论您的应用程序是否位于反向代理、防火墙或其他任何位置都无济于事。请参见此答案以获得更全面的解释。
尝试使用Nginx作为前端Web服务器,以提高稳定性和安全性。可以在谷歌上查找相关资源。
您可能想使用反向代理。