我在laravel之外使用Laravel / Eloquent ..
对于某些用户场景,我需要编写自己的验证类,因为我没有使用所有的Laravel组件..
所以我的问题是: 我应该在我的验证类中关注sql注入吗?换句话说,下面这段代码已经安全了吗?
//$user is an instance from a User Class extends Eloquent..
$user->username = $_REQUEST['username'];
答案 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注入如何都应该使用验证