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