簡體   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