SQL 注入是否會在 POST 和 GET 請求之外發生?
SQL 注入會利用 Web 應用程式中的漏洞,這些漏洞在將使用者輸入合併到之前未充分淨化使用者輸入SQL 查詢。雖然 POST 和 GET 方法是這種攻擊的常見途徑,但 SQL 注入也可以透過其他方式發生。
在提供的程式碼中,採用 mysql_real_escape_string 對使用者輸入進行編碼,從而降低 SQL 注入的風險。然而,代碼的安全性在很大程度上依賴於這種編碼的一致應用。
檢查範例程式碼
1. POST 方法
範例使用使用者輸入初始化變數:
$name = trim($_POST['username']); $mail = trim($_POST['email']); $password = trim($_POST['password ']);
範例使用使用者輸入初始化變數:
$sql = "INSERT INTO clients SET name='" . mysql_real_escape_string($name) . "', mail='" . mysql_real_escape_string($mail) . "', password='" . mysql_real_escape_string(sha1($password)) . "'";
範例使用使用者輸入初始化變數:
範例使用使用者輸入初始化變數:$videoID = trim($_GET['videoID']); $userID = trim($_GET['userID']);
$sql = "SELECT videoID FROM likes WHERE videoID = '" . mysql_real_escape_string($videoID) . "' AND UID = '" . mysql_real_escape_string($userID) . "' LIMIT 1";
在將使用者資訊儲存到資料庫之前,對其進行了充分編碼:
2。 GET 方法
從URL 初始化變量:SQL 查詢再次採用適當的編碼:結論您提供的程式碼不存在SQL注入漏洞,感謝一致使用mysql_real_escape_string 對使用者輸入進行編碼。必須注意的是,無論其來源為何,都必須明智地對所有使用者輸入應用編碼。為了進一步增強安全性,請考慮採用更現代的方法,將 PDO 與準備好的語句結合使用。以上是SQL 注入可以超越 POST 和 GET 請求嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!