我开始使用Laravel with 4.0,默认情况下可以进行质量分配......即
$foo = Foo::create('foo' => 'bar', 'bar' => 'foo');
但我认为在L4.1中,可用于质量分配的字段必须在模型中定义。现在我正在阅读L5的教程,因为我主要是通过反复试验来学习L4,而且我在很多模型上看到了大量的任务,我觉得风险很大,比如用户
我有点期望因为要求提出意见而受到抨击,但我不清楚我对质量分配所担心的风险(SQL注入I'假设)。或者,我定义模型中可分配质量的事实是否会消除L4.0系统中存在的风险?
答案 0 :(得分:2)
"风险"是开发人员经常将Input::all()
传递给模型。如果没有$fillable
和$guarded
的新系统提供的保护,意外的用户输入可能会产生错误(确切地说是一个SQL错误,如:column foo not in field list
),它可能允许用户插入你不希望他通过操纵请求来设置的属性。