laravel怎么启用“禁止批量赋值”特性

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

laravel怎么启用“禁止批量赋值”特性

在Laravel框架中,不可批量赋值是一个重要的安全特性,它有助于防止恶意用户篡改数据库数据。但是这个特性也有用途不明确的时候,造成了许多程序员的困惑。

在批量赋值时,程序员将表单数据直接通过create或者update方法保存到数据库中。如果不进行任何验证,由于存在黑客攻击、注入等严重威胁,那么便会有极大的风险。为了解决这个问题,Laravel引入了一个特性,即禁止批量赋值。

不可批量赋值是指,在使用create或者update方法的时候,如果没有指定允许保存的字段,那么程序会自动过滤掉所有非法的字段。这个特性不仅提高了程序的安全性,也加强了对程序员的开发约束:只有明确允许的字段才能保存到数据库中。

通过非常简单的一行代码即可启用这个特性。在需要禁止批量赋值的模型中使用$guarded属性。

<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class User extends Model{    protected $guarded = [];}
登录后复制

在例子中,$guarded属性是一个空数组,意味着所有的字段都是可编辑的。

如果想要只允许保存特定的字段,可以将$guarded属性设置为一个包含所有不允许编辑的字段的数组,或者使用$fillable属性。

<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class User extends Model{    protected $fillable = ['name', 'email', 'password'];}
登录后复制

更好的做法是在控制器中进行数据验证,验证后再保存到数据库中。这样可以避免一些误操作和安全问题。

<?phpnamespace App\Http\Controllers;use App\User;use Illuminate\Http\Request;class UserController extends Controller{    public function store(Request $request)    {        $validatedData = $request->validate([            'name' => 'required|string',            'email' => 'required|email|unique:users',            'password' => 'required|confirmed',        ]);        $user = User::create($validatedData);        return back()->with('success', 'User created successfully.');    }}
登录后复制

这里通过validate方法验证了所有输入的字段。如果验证成功,再保存到数据库中。以上代码不仅安全性高,而且代码也很优雅。

总的来说,Laravel的不可批量赋值是一个很完美的机制,能有效地提高程序的安全性。我们应该尽可能地利用这个特性,避免在开发中造成不必要的风险。

以上就是laravel怎么启用“禁止批量赋值”特性的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。

作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:介绍linux安装php7.3.0的方法
下一篇:PHP技术在CMS系统开发中的应用如何提高数据安全性

发表评论

关闭广告
关闭广告