我在 Nodejitsu 上托管一个应用程序,我希望该应用程序使用 wkhtmltopdf 将页面转换为 pdf,这是一个二进制文件。唉,我对 Nodejitsu 的计划不够大,无法通过 ssh 访问安装 wkhtmltopdf。
我想做的是在 AWS ec2 上托管 pdf 转换器。但我不确定安全连接两个 node.js 服务器的好方法。此外,当两台服务器连接时,在这两台服务器之间传输文件的最有效方式是什么。
有具体的设计模式吗?
我在 Nodejitsu 上托管一个应用程序,我希望该应用程序使用 wkhtmltopdf 将页面转换为 pdf,这是一个二进制文件。唉,我对 Nodejitsu 的计划不够大,无法通过 ssh 访问安装 wkhtmltopdf。
我想做的是在 AWS ec2 上托管 pdf 转换器。但我不确定安全连接两个 node.js 服务器的好方法。此外,当两台服务器连接时,在这两台服务器之间传输文件的最有效方式是什么。
有具体的设计模式吗?
这取决于您需要什么安全性,以及您需要多少。因此,我假设您的 nodejitsu 服务器上有一些数据,并希望将其(以 html 格式)发送到 Amazon,然后从 amazon 将其(以 pdf 格式)接收回 nodejitsu,并且您想要:
首先,意识到任何有权访问 nodejitsu 或 amazon(员工或黑客)的人无论如何都可以看到您的数据(并且可能任何有权访问您的数据库提供商的人)。在某处发生数据泄漏的可能性比有人监听/篡改两者之间的连接的可能性要大得多(特别是如果您同时在美国或您信任的政府的(另一个)国家托管(请注意,如果美国政府想要访问您的数据,无论是 nodejitsu 还是亚马逊服务器都在美国,无论如何他们都会得到它)。但是,问题是,除非出现一些重大的互联网中断,否则 nodejisu 和亚马逊之间的连接不会通过阴暗的提供商或开放无线网络。
一旦你决定你仍然想要/需要额外的安全层(和复杂性),我会说:选择简单的路线。没有 https,没有证书,没有非对称加密。只需选择一个共享密钥(随机密码,越长越好),然后在发送之前对数据进行 AES 加密,然后在另一端进行 AES 解密(使用内置的节点加密模块)。只需通过 http 发送您的(加密的)文档,您就完成了。您甚至不需要任何授权层:收到的任何未加密为有效文档的内容都可以丢弃。
确实,https 可以防止其他一些攻击(主要是共享密钥可能在您的代码中的某个位置,因此也在您的本地机器(和 github)上,并且使用非对称加密,您只需将公钥存储在您的代码中。但是不过,它会为您省去很多麻烦!