【发布时间】:2020-05-01 11:24:59
【问题描述】:
class Student extends Model {
protected $fillable = [‘first_name’, ‘last_name’, ‘email’];
}
来源:https://medium.com/@kshitij206/laravel-mass-assignment-guarded-or-fillable-7c3a64b49ca6
在 Internet 上的任何地方,他们都说要使用 fillable 或 guarded 来确保 Laravel 的安全性。
但是如果一个字段是可填写的,那么,这个字段会被黑客入侵吗?
【问题讨论】:
-
@RonvanderHeijden 我读到了,但我仍然不确定可填充字段会发生什么。
-
@Alex01 如果将字段分配给可填充数组,则意味着当您将数组传递给
Model::create()方法时,该数组的键必须与模型的属性名称匹配。因此,如果您的意思是“被黑客入侵”是“插入”,那么是的,因为您已经明确允许这样做。只要您使用$request->only()而不是$request->all(),就可以了。 -
这取决于值 'admin' 的来源。如果您从 HTTP 请求参数接收它,那么是的,这是一个安全问题。重申一下,
$user->type = 'admin'$user->type = $request->type -
@Alex01 如果您不使用数组,这意味着您正在手动选择要添加的 $request 参数,那么只会添加那些 $request 参数,这意味着如果用户发送了额外的参数或不需要的参数参数,它们将被拒绝。
标签: laravel security mass-assignment