Laravel 安全:避免 SQL 注入


當你使用 Eloquent 查詢時,如:

User::where('name', $input_name)->first();

Eloquent 內部使用的是 PDO 參數綁定,所以你的請求是安全的。雖然如此,在一些允許你使用原生 SQL 語句的地方,還是要特別小心,例如 whereRaw 或者 selectRaw 。如下:

User::whereRaw("name = '$input_name'")->first();

以上這段代碼里是存在安全漏洞的,請盡量避免使用原生查詢語句。如果你有必須使用原生語句的情況,語句里又包含用戶提交內容的話,可以利用其提供的,類似於 PDO 參數綁定進行傳參,以避免 SQL 注入的風險:

User::whereRaw("name = ?", [$input_name])->first();

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM