2011-01-13 21 views
1

我正在爲客戶的網站開發一些額外的功能,它使用電子郵件地址作爲各種數據庫(電子郵件營銷系統,內部潛在客戶數據庫和第三個共享數據庫之間的橋樑)之間的關鍵查找變量。在PHP會話變量中使用電子郵件地址的好/壞主意?

我擔心將訪問者的電子郵件地址存儲爲$ _SESSION變量可能會導致安全問題(對我們的網站而言,並不是訪問者)。

任何人都有建議或經驗,這是否可以做,或者如果有另一種選擇呢?

回答

3

瞭解$_SESSION變量的存儲方式和如何使用cookie來檢索變量之間的區別很重要。會話中的所有數據都存儲在服務器上(默認爲/tmp,我相信),並在請求之間保留。會話數據默認情況下不直接存儲在cookie中。

但是,PHP將存儲一個具有唯一標識的cookie,用特定會話標識用戶(因此可以通過不同的請求檢索相同的信息)。

如果具有會話ID的cookie被泄露,另一個用戶可以冒充該會話的某人。這包括用戶已經登錄的經過驗證的會話。如果發生這種情況,您可能會遇到比暴露電子郵件地址更大的問題。

在會話中使用某種用戶標識並不是一個壞主意,而不是電子郵件地址。但是,還有其他一些可能更有用的方法可以爲會話添加安全性。

看到這個問題:PHP Session Security

0

您可以在變量中使用部分電子郵件地址。因此,例如,您可以使用電子郵件[email protected]中的名稱joe。然後使用另一個參數來執行搜索。

此外,在將變量傳遞到數據庫時,總是使用mysql_real_escape_string(),並在一些反斜槓中添加好的度量。

+0

嗯...始終使用mysql *** _ ***實_ escape_string,或更好,但更好的連接器。 – Kris 2011-01-13 14:22:59

+0

對不起,知道它看起來不正確。我現在改變了它。 – mickburkejnr 2011-01-13 14:45:48

2

在$ _SESSION中存儲值沒有任何內在危險。這完全取決於您是否提供了無意中將其輸出到瀏覽器的代碼。

相關問題