Laravel 使用預處理語句和參數綁定來防止 SQL 注入。這種方法可以有效防止惡意用戶在查詢中插入惡意代碼。以下是如何在 Laravel 中使用預處理語句和參數綁定的示例:
使用 DB
facade 的 prepare
方法創建預處理語句。例如,創建一個用于查詢用戶的預處理語句:
use Illuminate\Support\Facades\DB;
$stmt = DB::prepare('SELECT * FROM users WHERE username = :username AND password = :password');
使用 bindParam
方法將參數綁定到預處理語句。例如,將用戶提供的用戶名和密碼綁定到預處理語句:
$username = 'exampleUser';
$password = 'examplePassword';
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
使用 execute
方法執行預處理語句。例如,查詢數據庫中的用戶:
$result = $stmt->execute();
使用 fetch
或 fetchAll
方法獲取查詢結果。例如,獲取查詢到的用戶:
$user = $result->fetch(PDO::FETCH_ASSOC);
通過這種方式,Laravel 會自動處理參數轉義,從而防止 SQL 注入。你不需要擔心用戶輸入的安全性問題,因為 Laravel 會確保參數在發送到數據庫之前被正確轉義。