2010-07-28 70 views
2

我可以在PHP中執行登錄領域,並且我通過設置會話變量並檢查會話變量是否已設置。在每個受限制的頁面上,我檢查是否設置了某個會話變量(或等於某個特定值)。如果不是,那麼我會將用戶返回到登錄頁面。這是做這件事的最好方法嗎?有沒有更安全的方法來做到這一點?在PHP中創建登錄領域的最佳方式

回答

0

我在SO上有類似的問題,here是安全人員的答案。

把它總之,你應該考慮其他的東西像SSL和密碼哈希,等等

希望這有助於:)

1

這很好,很正常。在頁面頂部,您有一個標題,用於啓動會話並檢查用戶是否已通過身份驗證。當他們沒有時,讓他們登錄。

只要您的會話ID不可預知,足夠快到期並且您正在使用SSL,那麼A-OK和安全。

如果有人可以猜出您的會話ID,他們可以劫持另一個用戶的登錄名。

如果您不使用SSL,攻擊者可以在客戶端將其發送給您時竊取會話ID。

如果您的會話永不過期,最終可能會猜到ID。

+0

如果可預測的話會怎樣? – denniss 2010-07-28 22:51:40

+0

@denniss:正如我所說,如果有人可以猜測另一個用戶將擁有什麼會話ID,他們可以假裝是該用戶。 – Borealid 2010-07-28 22:52:57

1

有很多思考,當你設置一個登錄系統。以下是一些您想要回答的問題:

  • 安全性:您需要對存儲的任何地方(cookie,數據庫,會話等)的密碼進行加密。你會怎麼做?
  • 用戶能夠登錄到每個頁面嗎?或者會有一個集中的帳戶頁面?
  • 有沒有記住我的功能?
  • 用戶將如何註銷?
  • 你有你的網站激活?它將如何工作?您將如何處理各種情況,例如嘗試登錄的未激活用戶?
  • 你有登錄/表單重定向嗎?也就是說,如果用戶在沒有登錄的情況下轉到一個頁面,你會在登錄後將它們發送到那裏嗎?如果他們嘗試發送表單怎麼辦?你會重新發送表格嗎?

你的基本思想是正確的,但是你構造一切的方式取決於那些和其他問題。