前端令牌中的安全问题和API

时间:2017-02-16 14:39:35

标签: angularjs laravel laravel-5.3 laravel-5.4

我使用Laravel作为API,使用AngularJs作为前端。

从API开始,数据就是这样的。

$data = [
    'Token'     =>  \Auth::guard("api")->user()->api_token,
];

return  \Response::json([
    'Status'    =>  true,
    'Message'   =>  'ok',
    'Data'      =>  $data,
], $Code);

在AndularJs控制器中,它在cookie中保存如下。

$cookies.put("Token", response.data.Data.Token);

然后从Cookie中检索它,就像这样

$cookies.get("Token");

我认为,这是安全问题,如果有人知道令牌,他们会提交任何请求。

你能提出更好的建议吗?

我们可以做...像获取当前设备信息(Android或桌面等等)然后将最终加密值(令牌+设备信息)保存到cookie或其他媒体中吗?然后在向api发送请求时....我们可以解密以确定是否是被盗的令牌......?有什么我可以使用的,在所有设备中都是独一无二的吗?

2 个答案:

答案 0 :(得分:0)

强制要求将TLS / SSL(HTTP over TLS或HTTPS)与网络令牌结合使用,以确保您的API与角度客户端之间的安全通信,在大多数情况下这足够了,您可以通过加密来添加额外的图层令牌有效负载本身使用JSON Web加密(JWE)规范,然后将其存储在您的cookie中。

希望这有帮助。

答案 1 :(得分:0)

我认为可能的解决方案是Laravel Passport。这种方式在前端存储client_idclient_secret,然后使用它们来交换授权令牌。