2013-08-22 60 views
1

我正在製作一個網站,用戶將使用OpenID登錄。 雖然我會給他們選擇Google,Yahoo和AOL。 他們將登錄或註冊OpenID提供商的帳戶(Google/Yahoo/AOL),並在他們被重定向回我的網站後,我會向他們展示「註冊成功!」,同時,我會將他們的電子郵件ID存儲爲他們聲稱的ID或Google等在OpenID AX(屬性交換)中給出的內容。在網站的後端安全地存儲電子郵件ID

現在,由於網站上的一些活動,如評論,查詢等,我希望通知用戶。爲此,我會發送郵件給他的電子郵件帳戶,我將從他的OpenID註冊中獲得我的網站。 而且我將需要明文(明顯)的電子郵件ID,發送給他們的郵件。但是在數據庫中,我想要安全地存儲email-id,並且足夠安全,以便即使有人攻擊並下載用戶表,他們也無法破譯email-id。

如何做到這一點?對於AES加密或類似的,我需要存儲一個密鑰。如果後端腳本可以輕鬆訪問密鑰以將電子郵件ID轉換爲明文,那麼黑客也不能?

我只是想安全地存儲電子郵件的ID我的網站的註冊用戶,並給他們發電子郵件有關通知,但不會危及他們的電子郵件標識越來越受到黑客很方便。

回答

0

正如您所描述的,絕對安全是不可能的。如果您可以讀取服務器上的電子郵件地址(或任何其他數據),潛在的攻擊者也可以。研究服務器和數據庫安全性,以便將成功攻擊的可能性降至最低。

偏執版將把電子郵件數據庫帶走到一個不同的,物理上分開的專用數據庫服務器。這裏存儲的唯一數據應該是user_id-email對。不要在此服務器上運行任何其他服務。不允許直接存取數據 - 相反,有兩種方法隱藏它的API背後(也許存儲過程):

  • store_email(USER_ID,電子郵件)
  • send_message(USER_ID,主題,郵件)

再說一次,這絕對不會100%安全,只是提供了另一層防禦。

相關問題