2015-03-13 60 views

回答

3

我能夠使用MeteorJs框架來完成此操作。我的解決方案不夠性感,但效果很好。

要點:https://gist.github.com/mariorodriguespt/b8c8a96ad2eccfb9b359

我簡單地使用收集鉤包保存到數據庫中,當我發表我簡單地將其解密數據之前對數據進行加密。我只在服務器上這樣做,所以我不會將加密密鑰發送給客戶端。

這只是我個人實驗室的一個實驗,對於生產來說這是一個噩夢來維護。你想讀/寫數據,每次...

更好的解決辦法想象自己:

  1. 你可以寫一個包裝查找/更新軟件包/刪除,使您的生活輕鬆了許多。
  2. 您可以使用中間件來處理所有的數據加密/解密。 (我不知道如何與流星做到這一點,但我認爲這是可行的)

真實生活:

我從來沒有得到這一要求的項目。如果有人利用您的Web應用程序並設法轉儲所有數據,則攻擊者可以解密數據。這可以防止攻擊者直接利用數據庫服務器來獲取數據庫。

使用加密數據庫本身就是一場噩夢,真的很容易浪費時間。也想象一些可憐的人試圖優化數據庫模式設計。

我建議您在沒有加密的情況下開發您的應用程序,並且當您準備啓動時只需添加加密層即可。解決方案1在我看來效果很好。不要忘了寫遷移指南,你會需要它們:)

1

一些密鑰加密包流星包括:

  • jparker:加密AES
  • jparker:加密SHA256
  • 地鐵:jsencrypt
  • 地鐵:sjcl

所有可在atmospherejs.com

相關問題