通过'用户'javascript Ajax在laravel

how safe is to pass the 'user' to javascript Ajax in laravel?

本文关键字:laravel Ajax 用户 通过 javascript      更新时间:2023-09-26

我已经问过这种情况,但是当你像这样直接传递数据给视图时:您使用$user = Auth::user();获取用户,然后将其发送到使用return view ('somepage')->with('user',$user);的视图,浏览器将获取视图中的所有用户数据(用户名,密码,user_id等)。然后发现它应该是安全的。现在我在想,如果你把它传递给一个负责更新视图的脚本呢?这样的:

return Response()->json($user);

你在野外发射json进入脚本作为data,所以第三方可以访问json数据了吗?

不,您不希望将任何敏感数据传递给脚本或通过JSON。这两个资源都可以从客户端看到。

但是,您可以在将敏感数据序列化为JSON并传递给浏览器之前从对象中删除敏感数据。

在Eloquent模型中,添加一个$hidden属性-该属性是一个属性数组,当将模型序列化为JSON时将被删除。

所以,你的User模型看起来像:
<?php
namespace App;
use Illuminate'Database'Eloquent'Model;
class User extends Model
{
    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = ['password'];
}

然后,password将被删除,并且不能从客户端访问。

文档:https://laravel.com/docs/5.2/eloquent-serialization hiding-attributes-from-json