「mysqli_real_escape_string」足以防止 SQL 攻擊嗎?
提供的程式碼利用 mysqli_real_escape_string 來防止 SQL 注入。然而,需要注意的是,僅此函數不足以提供完整的保護。
SQL 注入漏洞
儘管使用了 mysqli_real_escape_string,但程式碼仍然容易受到 SQL 注入攻擊。這是因為它使用字串串聯來組裝 SQL 查詢,這使得攻擊者可以透過表單輸入註入惡意程式碼來操縱查詢。
建議解決方案:準備好的語句
防止 SQL 注入最有效的方法是透過準備好的語句。它們將資料參數與查詢指令分開,消除了污染的可能性。以下是範例:
$stmt = $db_con->prepare("INSERT INTO `users` (`email`, `psw`) VALUES (?, ?)"); $stmt->bind_param("ss", $email, $psw); $stmt->execute();
額外安全措施
如果準備好的語句不可行,請考慮:
透過實作這些措施,您可以顯著增強應用程式針對 SQL 注入和其他 SQL 攻擊的安全性。
以上是`mysqli_real_escape_string` 足以防止 SQL 注入攻擊嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!