2016-01-21 40 views
0

我需要做直接但安全的(不是Fort Knox,但是合理的)登錄到我的PHP站點。我想這樣做的步驟是:通過這些是實現安全PHP用戶登錄的正確步驟嗎?

  1. 用戶訪問網站的HTTPS

  2. 的用戶名和密碼,進入登錄界面上,哈希在服務器上,並與預哈希密碼(從當他們註冊),存儲在用戶記錄的數據庫中。我打算使用password_hash做哈希(使用鹽)

  3. 所有的數據庫查詢使用參數綁定防止SQL注入

  4. 當用戶登錄時,我設置$_SESSION['logged_in'] = true,並使用session_regenerate_id

  5. 我設置session.use_only_cookies選項

任何事情,我在這裏失蹤?

此外,我不確定防止CSRF,XSS攻擊和任何建議的最佳方法?

如果相關我在Google App Engine上託管,並使用他們的NoSQL雲數據存儲作爲我的數據庫並使用PHP-GDS庫(https://github.com/tomwalder/php-gds)作爲我的數據庫接口。

+0

如果您只是想實施身份驗證,請使用Symfony或Zend中的現有軟件包。它會爲你節省很多麻煩。 – tyteen4a03

+0

謝謝,你正在考慮哪些軟件包?我對這些都不熟悉。 –

回答

2

如果您要回顯任何用戶輸入數據,則需要使用PHP的htmlspecialchars()函數將其轉義,以防止XSS攻擊。

$foo = '<script>alert("This is bad!")</script>'; 

// produces a browser alert! 
echo $foo; 

// just write down the "<script>alert("This is bad!")</script>" string, 
// because it converts "<" to "&lt;" and so on... 
echo htmlspecialchars($foo);