安全地连接两个node.js服务器

时间:2013-03-06 12:11:20

标签: security node.js amazon-ec2 wkhtmltopdf nodejitsu

我正在Nodejitsu上托管一个应用程序,我希望该应用程序使用wkhtmltopdf将页面转换为pdf,这是一个二进制文件。唉,我没有与Nodejitsu达成足够大的计划来获得安装wkhtmltopdf的ssh访问权。

我想要做的是在AWS ec2上托管pdf转换器。但我不确定安全连接两个node.js服务器的好方法。 此外,当连接两台服务器时,在这两台服务器之间传输文件的最有效方法是什么。

这是否有具体的设计模式?

1 个答案:

答案 0 :(得分:1)

这取决于您需要什么样的安全性,以及您需要多少。所以我假设你的nodejitsu服务器上有一些数据,并希望将它(作为html)发送到亚马逊,然后从亚马逊收回(如pdf)到nodejitsu,你想要:

  1. 没人能够在
  2. 之间阅读您的文件
  3. 没有人在
  4. 之间篡改你的文件

    首先,要意识到任何有权访问nodejitsu或amazon(员工或黑客)的人都能够看到你的数据(也可能是任何有权访问你的数据库提供者的人)。某些地方发生数据泄漏的可能性远大于聆听/篡改其间连接的人(特别是如果您在美国或您信任的政府(或另一个)所在国家(请注意,如果美国政府需要)访问你的数据要么是nodejitsu,要么亚马逊服务器实际上都在美国,他们无论如何都会得到它。但是,事实是,除非一些主要的互联网中断,nodejisu和亚马逊之间的连接不会通过阴暗的提供商或打开wifi网络。

    一旦你决定你仍然需要/需要额外的安全层(和复杂性),我会说:选择简单的路线。没有https,没有证书,没有非对称加密。只需选择一个共享密钥(随机密码,越长越好),只需AES在发送数据之前加密数据,另一端AES解密(使用内置节点加密模块)。只需通过http发送您的(加密)文档即可。您甚至不需要任何授权层:收到的任何未加密到有效文档的内容都可以被丢弃。

    确实,https会阻止其他一些攻击(主要是共享密钥可能在你的代码中的某个地方,所以也在你的本地机器(和github)上,并且使用非对称加密你只需要将公钥存储在你的代码。但是,它仍然可以为您节省很多麻烦!