[英]Private REST API with Ajax call
如何僅授權我的應用程序使用我的REST API?
我在Java中有此代碼
$.ajax({
type: 'DELETE',
url : 'removeTest',
data: { ... },
beforeSend:function(){
...
},
complete:function(){
...
},
success:function(data, textStatus, jqXHR){
...
}
});
此調用將使用PHP中的REST API從數據庫中刪除用戶。 問題是,每個人都可以使用POSTMAN(Chrome插件)刪除用戶。 如何保護我的REST API僅授權我的應用程序。
檢查HTTP_REFERER是否不夠。 有什么更好的辦法?
謝謝你的幫助
您在這里有幾種可能性。 通常,您可以授權用戶,應用程序或同時授權兩者。 這取決於您的應用程序要求。
驗證應用程序
要對應用程序進行身份驗證,您可以使用基於令牌的系統 ,例如API密鑰。 這意味着任何請求都將使用其他請求參數進行簽名。 例如,看看亞馬遜在其S3服務中執行此操作的方式 。 如果您的應用程序是唯一可以訪問其余API的應用程序,則可以選擇通過IP地址限制訪問權限。
如果將有多個用戶通過您的客戶端使用該服務,則可能還需要授權對某些功能的訪問。 例如:是否將允許每個用戶刪除任何資源? 如果答案是否定的,您必須實施
驗證和授權用戶
在RESTful API中對用戶進行身份驗證的一種簡單方法是使用HTTP Basic或Digest Auth 。 在此設置中,用戶憑證通過授權標頭以username:password的形式作為Base64編碼的哈希發送到服務器。 請注意,您僅應使用HTTPS通過安全連接來執行此操作!
此外,您還可以查看更復雜/復雜的實踐,例如OAuth 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.