2009-01-14 46 views
6

我期待第一次實現用戶登錄到我的網站。我很高興能夠構建我自己的解決方案,或者實現開源的東西,但是到目前爲止,在我的搜索中沒有明顯的選擇。同樣,我完全知道,作爲一名中級php程序員,如果我推出我自己的解決方案,並且保持良好開放狀態,我很可能會錯過某些明顯的東西。php中的簡單授權/登錄功能

有什麼建議嗎?我們不是在這裏談論超敏感或支付數據,但同樣,我非常希望不要讓人們搞亂我的網站!

要求 - 基於PHP的 - 儘可能簡單,不需要花哨花俏 - 不Zend框架,因爲我現在已經推出我自己很基本的frameworkthanks到this post

感謝您的輸入。

+0

你可能想看看https://github.com/delight-im/PHP-Auth這既是框架不可知和數據庫無關。 – caw 2016-09-22 03:00:40

回答

5

幾個不錯的安全性疑難雜症的是

  • 從未在數據庫中存儲的一個未加密的用戶密碼
  • 從未存儲用戶密碼,甚至是在會話密碼的散列或cookie數據。
  • 如果您需要確保登錄是安全的,您必須使用https。

我發現這些文章在構建登錄系統的餅乾非常有幫助:

+0

+1謝謝,我正在密碼存儲在會話變量 – 2009-01-14 18:42:05

3

「你會把你的眼睛放在孩子身上。」

安全性很難。我討厭這樣說,但是你做出一個安全的簡單授權方案的機率很渺茫。這裏沒有簡單的模式。因此,您可能需要先閱讀各種框架/ cmses中的一些認證代碼,以及其他可以看到其他人如何完成它的地方,然後開始研究。

這裏有一些鏈接: http://www.topmost.se/personal/articles/casual-cryptography-for-web-developers.htm http://pear.php.net/packages.php?catpid=1

-1

這並不難,和有趣的代碼,作爲一個初學者。

你需要一個地方來存儲你的數據(比方說一個MySQL數據庫)。

您至少應該有一個登錄字段和一個密碼字段。 (例如,密碼應該使用sha1()存儲在存儲器中)。

現在,您必須顯示登錄表單。我認爲這對你是好的。

只要我們獲得登錄名和密碼,我們該做什麼?

查詢數據庫以查看是否存在與login_base == login_form和password_base == sha1(password_form)的匹配項。

如果是,則設置一些內容,例如會話。

因此,在一個頁面上應該記錄一個,你只需要檢查是否有一個會話集。

這是基礎;那麼你可以添加一些關卡等等。

+3

-1爲可笑的錯誤陳述「這不是那麼辛苦,而且作爲一個初學者,編碼很有趣。」有一百萬種方法可能導致基本身份驗證錯誤,並且初學者將代碼授權視爲跳下懸崖的旅鼠。 – 2011-02-10 21:52:46

0

我發現了一些用途,建設自己的使用HTTP認證就足夠了。我建議this作爲一個起點。

由於您有自己的基本框架,因此在一些常見的地方包含認證代碼應該不會太困難。

一些優點是

  • 沒有很多的代碼。
  • 不需要 Cookie或URL重寫。

缺點

  • 不能很好地擴展到更精細的 訪問控制。
  • 簡單方式爲「登錄 出」。

-
BMB