2010-01-25 178 views
0

什麼是安全登錄?我如何在PHP中開發一個?請記住,我只是PHP的初學者。使用安全登錄PHP

+0

這只是登錄或整個認證過程(登記,驗證,登錄,管理) – yretuta 2010-01-25 05:10:06

回答

3

我建議讓OpenID解決方案合併到您的網站中。

例如:PHP OpenID Library

比OpenID的其他,this article會給你一個PHP登錄的基礎知識一個良好的開端

1

安全登錄系統通常並不比給用戶一個cookie更多(請參閱php會話),然後在每個「安全」頁面上檢查該cookie。用戶可以通過登錄來獲取這些信息,您可以通過openid或通過存儲用戶名和密碼來完成此操作。

2

一個更好的問題是:如何調用一個PHP登錄應用程序「安全」?

這裏有一些指針(我很新的PHP太多,所以請多多包涵)

  1. 安全連接(通過SSL)
  2. 當存儲到數據庫(單向散列哈希密碼建議)
  3. 驗證 - 確保您徵收一定的字符數限制(最大/最小的密碼,用戶名,電子郵件等),字符是你所期望的格式...等...

這裏正在實施NS

  1. 重定向你http://www.site.com/loginpage.php到像https://yoursite.com/login.php
  2. 哈希密碼=研究MD5與鹽散列,或者如果你想使您的生活更輕鬆,使用phpass(不需要鹽,單向散列,由內置「親」)
  3. 驗證 - 使用PHP的buiilt的驗證功能,或者構建自己的正則表達式(或更好,但使用驗證庫)

抱歉,資源沒有鏈接,但谷歌-ING起來是很容易

+2

在這個時代,有這麼多卓越的哈希算法,爲什麼我們繼續推動MD5?這就像給羣衆兜售IE6一樣。從技術上講,它應該早已被人遺忘了。 – 2010-01-25 05:13:18

+1

SHA1是我使用的 – JasonDavis 2010-01-25 05:22:54

+0

我非常感興趣,除了md5以外,還有其他使用鹽的哈希方法嗎?我目前正在使用phpass,所以除了md5之外,不知道其他什麼 – yretuta 2010-01-25 06:03:59

1

只添加到上述點 -

之一,以防止在PHP登錄和依賴於數據庫訪問一般是sql注入的形式最重要的事情。

Wiki article

Brief example

這種最常見的消毒不好的輸入發生。使用mysql_real_escape_string()提供一般保護。隨着OOP在PHP 5中的出現,考慮在PHP服務器執行它們時使用PHP的PDO擴展來生成參數化的sql語句是非常有利的。

An explanation and examples of PDO in PHP

+0

要添加到DeaconDesparado所說的內容中,如果您爲mysql使用預準備語句,則會自動清理SQL注入。 – 2010-07-06 21:00:06