首页 > 解决方案 > Laravel 中的可填充字段是否有可能被黑客入侵?

问题描述

class Student extends Model {
    protected $fillable = [‘first_name’, ‘last_name’, ‘email’];
}

资料来源:https ://medium.com/@kshitij206/laravel-mass-assignment-guarded-or-fillable-7c3a64b49ca6

在 Internet 上的任何地方,他们都说要使用Laravelfillableguarded为了安全。

但是如果一个字段是可填写的,那么,这个字段可以被黑客入侵吗?

标签: laravelsecuritymass-assignment

解决方案


默认情况下,所有 Eloquent 模型都受到保护以防止批量赋值,因此要使用批量赋值,您应该在模型上指定一个fillableguarded属性,以使用该create方法将新模型保存在一行中。

所以下面的代码应该会导致错误

$flight = App\Flight::create(['name' => 'Flight 10', 'number' => 3]);

当你有

protected $fillable = ['name'];

因为你不能在number这里批量分配属性。

在此处阅读更多信息:https ://laravel.com/docs/7.x/eloquent#mass-assignment


推荐阅读