2013-06-28 78 views
0

如何僅授權我的應用程序使用我的REST API?使用Ajax調用的私有REST API

我有這樣的代碼在Javascript

$.ajax({ 
       type: 'DELETE', 
       url : 'removeTest', 
       data: { ... }, 
       beforeSend:function(){ 
        ... 
       }, 
       complete:function(){ 
        ... 
       }, 
       success:function(data, textStatus, jqXHR){ 
        ... 
       } 
      }); 

這個調用將在PHP REST API數據庫中刪除用戶。問題是每個人都可以用POSTMAN(Chrome插件)例如刪除一個用戶。我如何保護我的REST API只授權我的應用程序。

檢查HTTP_REFERER是不夠的。有什麼更好的?

感謝您的幫助

回答

0

您在這裏有幾種可能性。一般而言,您可以授權用戶,應用程序或兩者。這取決於您的應用程序要求。

鑑定應用

爲了驗證你可以使用一個基於幣系統,應用程序,如API密鑰。這意味着任何請求都將使用其他請求參數進行簽名。例如,看看他們的S3服務中的the way amazon does this。如果您的應用程序將是唯一一個將訪問其餘API的應用程序,您可以通過IP地址簡單地限制訪問。

如果將有多個用戶通過您的客戶端使用該服務,您可能還需要授權訪問某些功能。例如:是否允許每個用戶刪除任何資源?如果答案是否定的,你必須實現

驗證和授權用戶

一個簡單的方法來驗證在一個RESTful API的用戶使用HTTP Basic或摘要驗證。在此設置中,用戶憑證通過授權標頭以用戶名:密碼的形式作爲Base64編碼哈希發送到服務器。請注意,您只能通過使用HTTPS的安全連接執行此操作!

此外,您還可以查看更復雜/複雜的實踐,如OAuth