我正在構建一個從頭開始具有註冊和登錄功能的Web應用程序。當涉及到安全問題和攻擊如mysql注入時,我完全是新手。除了數據庫中的密碼加密之外,還有哪些其他安全問題需要我擔心?我該如何照顧他們? 謝謝安全問題登錄註冊系統使用php javascript mysql
0
A
回答
2
你需要確保消毒在SQL所有變量,如果你不使用類似PDO這是與mysql_real_escape_string
例如做最容易,當你正在檢查用戶憑據您的代碼會看起來是這樣的:
$sql = "SELECT `id` FROM `users` WHERE `username` = '".mysql_real_escape_string($_POST['username'])."' AND `password` = '".mysql_real_escape_string($_POST['password'])."'";
$dosql = mysql_query($sql); // etc
這也是值得添加以下到您的登錄程序,以防止session fixation。
session_regenerate_id(true);
1
你真的需要注意的一件事是Cross-site Request Forgery(CSRF或XSRF)。防止它最簡單的方法是發送一個令牌與每個請求(甚至發送登錄cookie的副本將工作)。
1
您還必須擔心跨站點腳本攻擊。 (通常縮寫爲XSS)基本上,這意味着如果您的應用程序曾經將用戶提交的數據提交給後續頁面的HTML部分,則必須對其進行消毒。例如,如果您的應用程序是留言板,惡意用戶可以使用嵌入式HTML創建帖子,以便在用戶不知情的情況下加載遠程javascript。
防禦它的一個簡單方法是使用將HTML字符編碼爲實體代碼的函數對作爲Web應用程序HTML的一部分的任何數據進行編碼。在PHP中,您可以使用htmlspecialchars()。
但是,你應該考慮更多。 OWASP(開放Web應用程序安全項目)是真正創建這一領域標準的行業組織。他們發佈了OWASP Top Ten列表,列出了10個最流行的安全漏洞。你會看到這些答案中提到的所有內容。
1
搜索「登錄安全問題」時,有許多優秀的文章。這個很棒:most common security mistakes。仔細閱讀每一個有投票權的答案,並確保你知道這意味着什麼,並且你沒有犯這個錯誤。總之,爲了安全起見,您必須假設用戶的每一條數據都可能是惡意的。
相關問題
- 1. PhP登錄/註冊系統
- 2. 登錄/註冊系統與PHP和MySQL
- 3. PHP登錄系統。安全?
- 4. PHP OOP登錄/註冊系統
- 5. codeigniter登錄系統安全問題
- 6. JDBC登錄/註冊系統
- 7. php mysql登錄系統問題
- 8. PHP OOP登錄/註冊系統
- 9. 登錄和註冊系統
- 10. 註冊和登錄系統
- 11. PHP mysql_query登錄系統安全
- 12. PHP登錄系統問題
- 13. 安全登錄,註冊和用戶數據保存(PHP&MySQL)
- 14. 安全的PHP登錄系統?
- 15. 安全註冊,用哈希登錄()
- 16. 登錄和註冊頁面問題php
- 17. 登錄系統/註冊用戶
- 18. 定製'安全'的PHP和MySQL用戶登錄會話系統
- 19. Android Studio登錄/註冊系統構想
- 20. PHP登錄系統問題 - mysql_num_rows無效
- 21. 登錄和註冊系統問題。接收和錯誤
- 22. 使用php和mysql登錄系統
- 23. 登錄註冊表問題
- 24. 春季安全登錄/註銷問題
- 25. 春季安全登錄/註銷問題
- 26. PHP/MySQL的登錄系統
- 27. PHP + MySQL登錄系統
- 28. PHP/MySQL登錄系統 -
- 29. MySQL Php登錄系統
- 30. PHP安全登錄/註銷:登出問題
如果你傳遞的是一個整數而不是字符串,不要使用'mysql_real_escape_string',而是先轉換它,就像'(int)$ myInt' – philfreo 2009-12-15 23:36:44