为了账号安全,请及时绑定邮箱和手机立即绑定

在 laravel 中发送 eloquent 来查看安全吗?

在 laravel 中发送 eloquent 来查看安全吗?

PHP
慕桂英3389331 2023-03-04 14:43:48
我刚开始学习使用 laravel 编程,当我不得不使用 foreach 打印出一些带有 id 的用户数据时,喜欢{{ $user->username }}{{ $user->somedata1 }}而其他部分看起来像路线Route::get('/some/{user}', 'SomeController@show');控制器public function show(User $user){return view(some.show)->with('user' $user)}用户表idusernamesomedata1somedata2passwordaddrbirthday...我开始考虑这不会调用其表行中的每个数据然后从中打印出用户名吗?因此冒着某种安全问题的风险,比如暴露密码、地址等敏感数据?如果是这样,我怎样才能隐藏特定的列不被调出?我必须从控制器手动准备数据吗?添加:示例中的控制器是否返回其行中的所有内容?
查看完整描述

2 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

如果您希望从检索到的数据中隐藏特定列,您应该$hidden为模型定义一个属性:


class User extends Model

{

/**

 * The attributes that should be hidden for arrays.

 *

 * @var array

 */

protected $hidden = ['password','address'];

}


查看完整回答
反对 回复 2023-03-04
?
慕村9548890

TA贡献1884条经验 获得超4个赞

首先,即使您将密码暴露给视图,假设您使用的是 Laravel 的身份验证脚手架,也无需担心,因为密码是通过bcrypt. 任何经过哈希处理的字符串都无法反转。

其次,你可以利用select()Eloquent 的方法。您可以按如下方式执行此操作:

Model::select('column_1','column_2')->where('column_1', 'value')->get();

我认为这解决了你的问题。


查看完整回答
反对 回复 2023-03-04
  • 2 回答
  • 0 关注
  • 94 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信