所以,我正在学习如何使用 Node.JS,到目前为止我很喜欢它。我已经有几个项目在工作,我认为我可以在其中使用 nodejs。
不过,我担心安全问题。如果我使用 Node.JS 的 http 模块编写自定义网络服务器,我是否很容易受到攻击? Apache/IIS 已经年(以及年复一年)的专业团队在他们的网络服务器中构建安全性,但仍然有人继续寻找漏洞.. 可能是我自制的网络服务器会更容易受到攻击?
我可以专注于哪些事情来为我的网络服务器构建一个良好的安全层?有没有涵盖该主题的好文章?
最佳答案
我同意 anm 和 schaermu 关于使用反向代理的观点,这样您的访问者就不会直接访问您的应用程序,即使这确实与稳定性而不是安全性有关。
我想补充一点,您还必须考虑安全地安装 Node 本身及其模块。特别是,永远不要使用这种方法安装 npm:
curl http://npmjs.org/install.sh | sudo sh
这基本上是为您使用不安全的 HTTP 从网络获取的任何内容提供 root shell,根本不进行验证,甚至不知道您在与谁交谈。这可能会导致使用非常基本且广为人知的方法严重损害您的整个系统,如果您的系统受到损害,那么您的应用程序是否位于反向代理、防火墙或任何东西后面都没有关系。见 this answer以获得更全面的解释。
关于javascript - Node.JS Web 服务器中的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5259291/