如何仅授权我的应用使用我的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 :(得分:0)
这里有几种可能性。通常,您可以授权用户,应用程序或两者。这取决于您的应用要求。
验证应用
要对应用程序进行身份验证,您可以使用基于令牌的系统,例如API-Key。这意味着任何请求都将使用其他请求参数进行签名。例如,在他们的S3服务中查看the way amazon does this。如果您的应用程序将是唯一可以访问其余API的应用程序,您可以简单地通过IP地址限制访问。
如果有多个用户通过您的客户端使用该服务,您可能还需要授权访问某些功能。例如:是否允许每个用户删除任何资源?如果答案是否定的,则必须实施
对用户进行身份验证和授权
在RESTful API中对用户进行身份验证的一种简单方法是使用 HTTP Basic或Digest Auth 。在此设置中,用户凭据通过Authorization标头以username:password的形式发送,作为Base64编码的哈希值发送到服务器。请注意,您只能通过使用HTTPS的安全连接来执行此操作!
此外,您还可以查看更复杂/更复杂的做法,例如 OAuth 。