Zir*_*Qiu 8 php sql laravel eloquent
给出示例代码(Message是一个Eloquent模型.):
public function submit(Request $request){
$this->validate($request, [
'name' => "required",
"email" => "required"
]);
//database connection
$message = new Message;
$message->name = $request->input("name");
$message->email = $request->input("email");
$message->save();
}
Run Code Online (Sandbox Code Playgroud)
Eloquent是否使用参数化查询(如PDO)或任何其他机制来阻止SQL注入?谢谢!
eli*_*ide 16
对,但是...
是的,它依赖于内置的ORM功能,例如,它可以防止SQL注入$someModelInstance->save().来自文档:
Laravel的数据库查询构建器为创建和运行数据库查询提供了方便,流畅的界面.它可用于在应用程序中执行大多数数据库操作,并可在所有受支持的数据库系统上运行.
Laravel查询构建器使用PDO参数绑定来保护您的应用程序免受SQL注入攻击.无需清除作为绑定传递的字符串.
请注意,如果构建原始SQL语句并执行这些语句或使用原始表达式,则不会自动受到保护.更多来自文档:
Raw语句将作为字符串注入到查询中,因此您应该非常小心地不要创建SQL注入漏洞.
在构建原始SQL语句或表达式时,应始终使用参数化查询.有关如何在Laravel/Eloquent中执行此操作的信息,请参阅上面的上一个链接(以及文档的其他部分).
| 归档时间: |
|
| 查看次数: |
6717 次 |
| 最近记录: |