我一直在閱讀有關通過加密所有內容來保護用戶數據的Web服務。在數據庫被盜的情況下,一切都是安全的(假設我們假設所有常見的密碼術)。加密敏感數據 - DataMapper + Sinatra
我正在玩一個小型的Sinatra應用程序(並非真正計劃啓動它,它更多用於教育目的)在Sqlite上使用DataMapper ORM。我實現了基本的用戶身份驗證(哈希和醃製......所有常見的東西,簡而言之),我對此感到滿意。
事實是,應用程序的核心需要關於用戶的個人信息:權重和其他身體測量(可以毫無疑問地認爲個人和敏感數據,人們可能不想公開)。所以我想知道如何安全地存儲這些數據?在應用程序中,所有內容都只能由正確的用戶訪問(雖然在這方面相當新手,而且手工編寫幾乎所有東西,但我確信有很多安全漏洞......但正如我所說的,我不是真的打算做任何事情)。
我想過使用用戶密碼對它進行加密並在成功驗證後對其進行解密,但是如果忘記密碼會怎麼樣?如果密碼更改會怎麼樣?我讀過(在這裏),由於這些原因,最好不要這樣做,但是那怎麼辦呢?
這是個不錯的辦法使用密碼加密,你必須每當密碼更改時更新日期,如果密碼丟失,那麼數據也是如此。但是,您需要確保用戶密碼安全地加密。你也可以使用基於開放標識的身份驗證,說他們的Facebook個人資料。 +1好問題 – nikhil 2013-03-10 10:45:04
@nikhil我不同意,使用密碼加密是一個壞主意。使用密碼進行_allow_解密很好。 Helios,我建議看看[讓數據庫處理它](http://dba.stackexchange.com/questions/3585/postgresql-row-level-encryption),或使用[rbnacl](https:// github .com/cryptosphere/rbnacl)或只是[標準庫](http://stackoverflow.com/questions/4128939/simple-encryption-in-ruby-without-external-gems)加密訪問。 – iain 2013-03-10 11:24:49
我不知道postgresql中的這個功能。如果是這種情況,那麼你的方法肯定會好得多。 – nikhil 2013-03-10 16:00:22