2013-06-28 80 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