网站与node.js,托管架构决策

时间:2014-10-22 18:29:59

标签: node.js mongodb security hosting vps

我打算开始我的第一个网站。该网站是一个HTML5 + CSS + JS网站,后端运行node.js,提供存储在mongodb上的数据。我想知道哪一个是关于安全性的最佳解决方案:

  • 网络托管(SSL和cloudflare)+端口3000上的VPS服务(带有敏感数据的SSL,cloudflare和node.js;用户和传递以及本地mongodb)

  • 同一个VPS中的所有内容。

  • 您可以提供任何其他方法。

问题在于,在第一种方法中,架构中有两个元素,所以如果有人想要破解它,我认为它更难。另一方面,在第二种方法中,如果VPS被黑客攻击,一切都被黑客入侵,他们可以访问密码,mongodb数据库。我非常痴迷于安全性,因为它是我的第一个网站,我不知道为保护我的VPS(node.js和mongodb)需要做些什么。

此外,我想知道效率方面,这对于每天访问量为1000次的10MB网站来说是最佳解决方案。

2 个答案:

答案 0 :(得分:2)

无论您决定部署多少实际服务器,我都强烈建议不要直接从node.js提供您的站点。相反,通过更强大的http服务器(如Apache或Nginx甚至lighttpd)代理它。出于一个非常简单的原因,node.js中的http模块从未打算防止蠕虫和黑客攻击以及各种其他恶意软件。

我自己从头开始编写Web服务器,并注意到一般情况下,您将在服务器联机的第一个小时内进行第一次黑客攻击。你会在最慢的日子里每天进行十几次黑客攻击,并从那里上升。这些尝试非常普遍,大多数服务器软件不再将它们记录在访问日志中,只是阻止它们。

根据我个人的经验,我估计大约5%到10%的带宽被黑客/感染尝试失败所消耗。那是我没有受到积极攻击的时候。

通过默默无闻的安全并不是一个好的安全措施。特别是因为节点的http模块首先并不是很模糊,而且有一天人们必然会发现一个可以破解的弱点。

除了安全性之外,与node.js相比,您还浪费了更少的CPU周期,而忽略了Apache或Nginx中的这些黑客攻击尝试,因为您不需要运行任何javascript代码来处理它们。

答案 1 :(得分:1)

您可以在两种架构之间做出选择。这两种架构都是可以破解的,您的数据也会暴露出来。

如果安全性至关重要,请查看Mylar - 它是一个保护数据机密性的平台即使攻击者获得对服务器的完全访问权限。 Mylar仅在服务器上存储加密数据,并仅在用户中解密数据。浏览器。

它运行在Meteor之上,而bcrpyt又运行在Node.js之上并使用MongoDB,因此如果您的Web应用程序很小,则应该很容易移植代码。 Meteor还使用{{3}}存储密码,这是最好的 密码哈希算法如今。

相关问题