2014-10-30 27 views
0

我成功使用mycrypt加密管理面板中的ID,因爲它們經常在URL中看到。我之前已經手動添加了一個密鑰,但是這次我打算使用保存在會話中的用戶帳戶ID。這是一種好方法,還是應該在整個網站中保留一個固定的密鑰。php mycrypt使用會話ID作爲密鑰

感謝

+0

會話ID與恰好存儲在會話中的用戶帳戶ID之間存在很大差異。你究竟是什麼意思? – jeroen 2014-10-30 20:10:59

+0

當用戶登錄時,我將他們的帳戶ID存儲在一個會話中,這樣我就可以查詢數據庫,而不必在頁面之間傳遞他們的帳戶ID。希望有道理 – simmo 2014-10-30 20:14:13

+0

會話ID存儲在cookie中或通過URL傳播。你使用公開的密鑰來加密一些甚至不需要通過URL傳遞的東西(某種管理員ID)。它有點沒道理,是嗎? – 2014-10-30 20:38:47

回答

0

切勿在網址傳遞會話ID,即使加密的(雖然它的怪異,仍然相當不安全)。很久以前,PHP(session.use_trans_id = 0)不贊成傳輸SESSION ID。會話ID由瀏覽器自動傳輸,您根本無需照顧它。

唯一的用例可能是如果你想強制允許瀏覽器禁用cookies,那麼你需要將這樣的參數附加到所有鏈接(模仿不推薦使用的bahaviour)。但是:

  • 那就還是很大的安全隱患,因爲多數攻擊者和惡意webbots禁用cookie,
  • 以任何方式加密是沒有意義的堂妹字符串可以仍劫持,服務器將解密成原來的會話ID

因此,您只需提取存儲在會話中的用戶標識,而不必擔心通過URL傳輸會話標識。