簡體   English   中英

使用php javascript mysql登錄注冊系統中的安全性問題

[英]security issues in Login registration system using php javascript mysql

我正在從頭開始構建具有注冊和登錄功能的Web應用程序。 關於安全性問題和攻擊(例如mysql注入),我完全是新手。 除了對數據庫中的密碼進行加密外,我還需要擔心什么其他安全問題? 我該如何照顧他們呢? 謝謝

您需要確保清理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_regenerate_id(true);

您真正需要注意的一件事是跨站點請求偽造 (CSRF或XSRF)。 防止它的最簡單方法是在每個請求中發送令牌(即使發送登錄cookie的副本也可以)。

您還必須擔心跨站點腳本攻擊。 (通常簡稱為XSS)基本上,這意味着,如果您的應用程序曾經使用戶提交的數據成為后續頁面HTML的一部分,則必須對其進行清理。 例如,如果您的應用程序是留言板,那么惡意的用戶可能會發布帶有嵌入式HTML的帖子,而該帖子會在用戶不知情的情況下加載遠程JavaScript。

一種簡單的防御方法是使用將HTML字符編碼為實體代碼的函數對Web應用程序HTML中組成的任何數據進行編碼。 在PHP中,您可以使用htmlspecialchars()

但是,實際上您還應該考慮更多。 OWASP(開放Web應用程序安全性項目)是在這個領域真正創建標准的行業組織。 他們發布了OWASP十大列表,列出了十個最普遍的安全漏洞。 您會在此處看到這些答案中提到的所有內容。

搜索“登錄安全性問題”,有許多不錯的文章。 這很棒: 最常見的安全性錯誤 仔細閱讀所有有表決權的答案,並確保您知道它的意思,並且沒有犯錯。 簡而言之,為了安全起見,您必須假設來自用戶的每條數據都可能是惡意的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM