【问题标题】:How to secure data in Mongo DB of Meteor App如何保护 Meteor App 的 Mongo DB 中的数据
【发布时间】:2015-03-23 09:36:24
【问题描述】:
【问题讨论】:
标签:
mongodb
encryption
meteor
【解决方案1】:
我能够使用 MeteorJs 框架完成此任务。我的解决方案并不性感,但效果很好。
要点:https://gist.github.com/mariorodriguespt/b8c8a96ad2eccfb9b359
我只是在使用 collection-hooks 包保存到数据库之前对数据进行加密,当我发布数据时,我只是对其进行解密。我只在服务器上这样做,所以我不会将加密密钥发送给客户端。
这只是我个人实验室的一个实验,对于生产来说,维护它是一场噩梦。想象一下你每次想读/写数据时的自己......
更好的解决方案:
- 您可以编写一个包含 find/update/delete 的包,让您的生活更轻松。
- 您可以使用中间件来处理所有数据加密/解密。 (我不知道如何用 Meteor 做到这一点,但我认为这是可行的)
现实生活:
我从来没有遇到过有这个要求的项目。如果有人利用您的 Web 应用程序并设法转储所有数据,则攻击者会解密数据。如果攻击者直接利用数据库服务器,这可能会阻止攻击者获取数据库。
使用加密数据库本身就是一场噩梦,很容易在这上面浪费时间。还可以想象一些可怜的人试图优化数据库架构设计。
我建议您在没有加密的情况下开发您的应用程序,当您准备好启动时,只需添加加密层。在我看来,解决方案 1 会很有效。不要忘记编写迁移指南,你会需要它们 :)
【解决方案2】:
Meteor 的一些关键加密包包括:
- jparker:crypto-aes
- jparker:crypto-sha256
- mrt:jsencrypt
- mrt:sjcl
所有都可以在atmospherejs.com上找到