sql injection翻译过来就是sql注入,是指通过构造特定组合的字符串,欺骗应用程序,执行错误的业务逻辑。
明白了sql注入的概念,再来思考怎么预防?在laravel里,通常有以下三种方法来预防sql注入,分别是:
1.使用Validator验证页面提交的参数
$validator = Validator::make(['id' => $id], [ 'id' => 'required|numeric' ]); if ($validator->fails()) { abort(404); }else { //Run query }
2.使用参数绑定
DB::statement("UPDATE users SET password=? WHERE username =?", [$password, $username]);
3.关闭调试模式
编辑.env,设置APP_DEBUG=false
参考资料
https://www.stackhawk.com/blog/sql-injection-prevention-laravel/