2014-05-11 144 views
0

我們正在構建一個由MySQL支持的rails應用程序,該應用程序將存儲敏感信息,如用戶名,密碼,api_key,這些信息是特定於每個登錄用戶的。如何保護用戶名,密碼,api_keys

是否有寶石可以保護這些生產數據免受內部團隊成員或外部人員的竊取。

我們不希望在日誌中打印敏感信息 如果數據被盜,我們應該能夠防止對敏感數據進行逆向工程。

我們應該如何設計系統來避免上述情況。

+0

至於密碼而言,其存儲加密。但是具有足夠數據庫特權的任何人都可以看到像用戶名這樣的數據。 – Arjan

+0

不要存儲密碼[所有](http://stackoverflow.com/a/13326205/533120)(甚至加密)。只需存儲密碼哈希。和[鹽](http://en.wikipedia.org/wiki/Salt_(密碼學))他們的好辦法。另請參閱[this](http://stackoverflow.com/a/12538258/533120)。 –

+1

我認爲這個問題被誤解了,OP意味着將外部登錄名和密碼存儲在他的數據庫中。 –

回答

0

您可以防止某些參數被顯示在Rails的日誌中有:

config.filter_parameters << :parameter_name 

有關更多信息,請http://guides.rubyonrails.org/configuring.html#rails-general-configuration

注意數據仍可能會在你的數據庫日誌,或其他日誌你的系統可能正在收集。

無論如何,您應該對密碼等事物進行加密,但您的團隊對該意願的訪問次數大概會受到他們對源代碼/日誌/數據庫訪問次數的影響。

至於外部訪問,一個良好的開端將是Rails的安全文檔在http://guides.rubyonrails.org/security.html

+0

我瞭解未在Rails日誌中顯示它們的部分。我如何以安全的方式存儲用戶特定的api_keys(例如twitter,fb或flickr,youtube)。 – Rpj