用於安全MySQL 連接的PHP 參數化查詢
SQL 注入仍然是一種持續的安全威脅,可能會危及資料庫應用程式中的敏感資料。參數化查詢是減輕這種風險的關鍵技術。然而,正確實作它們不僅需要了解查詢本身,還需要了解資料庫連接過程。
考慮 PHP 登入頁面中的以下程式碼片段:
<code class="php">$query = "SELECT * FROM users WHERE username = '$userName' AND password = '$userPass'"; $result = mysqli_query($dbc, $query); $row = mysqli_fetch_array($result);</code>
此程式碼容易受到SQL 注入,因為使用者提供的輸入 $userName 和 $userPass 直接包含在查詢字串中。
要實現參數化查詢,請將此程式碼替換為以下內容:
<code class="php">$stmt = mysqli_prepare($dbc, "SELECT * FROM users WHERE username = ? AND password = ?"); mysqli_stmt_bind_param($stmt, "ss", $userName, $userPass); mysqli_stmt_execute($stmt); $row = mysqli_stmt_fetch($stmt);</code>
在此改進的程式碼:
以上是PHP 中的參數化查詢如何防止 MySQL 資料庫中的 SQL 注入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!