将表单请求直接传递给Laravel / Eloquent中的模型是否安全?

时间:2016-01-13 16:00:07

标签: php laravel pdo eloquent sql-injection

我在laravel之外使用Laravel / Eloquent ..

对于某些用户场景,我需要编写自己的验证类,因为我没有使用所有的Laravel组件..

所以我的问题是: 我应该在我的验证类中关注sql注入吗?换句话说,下面这段代码已经安全了吗?

//$user is an instance from a User Class extends Eloquent..
$user->username = $_REQUEST['username'];

1 个答案:

答案 0 :(得分:0)

是的,这是保存,在这种情况下,您不必担心SQL注入。最后执行此方法:

https://github.com/laravel/framework/blob/5.2/src/Illuminate/Database/Query/Builder.php#L1819

如你所见,这里有绑定。 https://github.com/laravel/framework/blob/5.2/src/Illuminate/Database/ConnectionInterface.php

中使用了相同的bibndings

最后这个方法:

https://github.com/laravel/framework/blob/5.2/src/Illuminate/Database/Connection.php#L381

将被执行 - 这是PDO准备好的语句,因此您可以看到不应该担心SQL注入。

当然,我总是建议验证数据,以确保您得到您期望的。您可能不想要%^等用户名字符,因此无论SQL注入如何都应该使用验证