如何使用 AngularJS 保护 Laravel 4 中的 API 访问

Posted

技术标签:

【中文标题】如何使用 AngularJS 保护 Laravel 4 中的 API 访问【英文标题】:How do I secure API access in Laravel 4 with AngularJS 【发布时间】:2015-02-17 15:12:17 【问题描述】:

我是 Laravel4 的新手,我有以下设置: (1) Laravel 中的后端和 (2) AngularJS中的前端

我想知道如何限制对 API 的访问。我实现了一个基于 Auth Token 的系统,该系统在发出 API 请求时由前端设置。

但是,任何人都可以使用检查网络调用、复制访问/身份验证令牌并使用它来发出 API 请求。如何保护我的 API 以防止可以复制 Auth Token 的人进行此类攻击?

【问题讨论】:

让用户使用自己的令牌触发请求应该没有问题。危险是如果用户 X 使用用户 A 的令牌,但这就是 HTTPS 的用途:) 我同意@JimLm;确保与 API 的通信是通过 HTTPS 进行的,您不会有任何问题。在 Laravel 的 routes.php 文件中,您也可以输入 header('Access-Control-Allow-Origin: https://yourwebsite.com'); 我认为您的意思是在您的问题中说 Laravel 4,而不是 Laravel 2。 @cornflakes24 我相信sireesha想知道如何防止登录用户获取他们的令牌并简单地将其插入非网络客户端并从那里进行调用 嗯,问题是“我想知道如何限制对 API 的访问”;所以我只是给出我的想法。这也是我现在正在研究的事情。 @LocNguyen 是对的。如何防止使用来自非 Web 客户端的令牌? 【参考方案1】:

如果您使用 HTTPS,则通信将被加密,并且应该没有人能够嗅探您网络上的 Token。

【讨论】:

当有人使用firebug查看头信息并复制令牌以在非Web客户端使用时怎么样? Firebug 只允许您访问自己的数据。因此,一个用户将无法使用 firebug 查看另一个用户的流量数据。即使他们发现了嗅探器,如果数据是通过 HTTPS 传输的,它也将无法读取。

以上是关于如何使用 AngularJS 保护 Laravel 4 中的 API 访问的主要内容,如果未能解决你的问题,请参考以下文章

带有角度路由的 Laravel 5 中间件

如何使用 AngularJs 处理 Laravel 路由?

如何使用 Spring Security 和 Angularjs 保护 Spring Rest 服务?

如何使用AngularJS和Laravel刀片在一起。

如何保护 Laravel 模型属性

如何使用 Laravel API 在 AngularJS 表单中发送 csrf_token()?