繁体   English   中英

保护我的私有API

[英]Securing my private API

我正在完成一个API供我自己使用,它用于传达我自己的用Backbone制作的Javascript客户端和我用Laravel制作的API。

我有一个根路由,该根路由提供了将我的应用程序加载到浏览器中所需的所有js,并且有一个名为“ api / v1”的组下的多个路由,该组为提供给我的客户端应用程序的JSON提供服务。

我需要我的用户可以使用该应用擦除数据,例如软删除旧用户并修改其他数据,但是其中一些数据包含我不希望别人看到的敏感信息。

我一直在阅读有关OAuth2的一些信息,并且我发现“隐式授予”非常适合无法维护Secret Key机密性的客户端,但是它要求我将用户发送到登录平台并然后将他重定向回该应用。 但我想在不影响用户工作流程的情况下使用客户端应用程序做到这一点。

我已经看到了“资源所有者密码凭据授予”,但是它要求我的客户端存储我的应用程序的秘密密钥,并且这是不安全的。

我认为我缺少了什么,有人能指出我正确的方向吗? 提前致谢

您可以使用Laravel的路由过滤器来保护您的路由免受未经授权的用户的侵害。 但是,由于Laravel应用程序现在仅成为端点,因此前端框架(在您的情况下为Backbone)将在身份验证和授权方面进行繁重的工作。

一旦设置了路由过滤器,就不会阻止授权用户尝试执行未经授权的操作。

我上面的意思是例如:

您有一个API端点: /api/v1/users/159/edit

端点是RESTful 7之一,可用于编辑用户。 任何软件工程师或开发人员都知道这是一个RESTful端点,并且如果得到您的应用程序的授权,则可以将带有数据的请求发送到该端点。

您只希望用户159或管理员能够执行此操作。

一个解决方案是角色/组/权限,无论您想称呼它们为什么。 在Backbone应用程序中为您的应用程序设置用户权限。

阅读这篇很棒的文章(在AngularJS中),了解如何使用前端JavaScript框架正确地进行身份验证/授权。 就像我说的那样,它在Angular中,但是是相同的想法。

文章: https : //medium.com/opinionated-angularjs/techniques-for-authentication-in-angularjs-applications-7bbf0346acec

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM