Laravel开发:用户输入处理、Artisan命令与测试
1. 用户输入处理与安全保护
1.1 模型的批量赋值保护
在处理用户输入时,为了防止恶意用户覆盖敏感字段,我们可以通过设置模型的 $guarded 属性来禁用批量赋值。例如,在 Post 模型中,我们可以这样做:
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
// Disable mass assignment on the author_id field
protected $guarded = ['author_id'];
}
通过将 author_id 设置为受保护字段,我们确保了恶意用户无法通过手动将其添加到表单内容中,从而覆盖该字段的值。
1.2 使用 $request->only() 进行双重保护
除了在模型层面进行保护,我们还可以在赋值端进行谨慎处理。相比于使用 $request->all() ,我们可以使用 $request->only() 来指定要传递给模型的字段:
Route::post('posts', function (Request $request) {
$newPost
超级会员免费看
订阅专栏 解锁全文
114

被折叠的 条评论
为什么被折叠?



