【问题标题】:Private REST API with Ajax call带有 Ajax 调用的私有 REST API
【发布时间】:2013-06-28 17:47:28
【问题描述】:

如何仅授权我的应用使用我的 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 是不够的。还有什么更好的?

感谢您的帮助

【问题讨论】:

    标签: ajax api rest


    【解决方案1】:

    这里有几种可能性。一般来说,您可以授权用户、应用程序或两者。这取决于您的应用程序要求。

    验证应用程序

    要对应用程序进行身份验证,您可以使用基于令牌的系统,例如 API-Key。这意味着任何请求都将使用额外的请求参数进行签名。以他们的 S3 服务中的the way amazon does this 为例。如果您的应用程序将是唯一可以访问其余 API 的应用程序,您也可以简单地通过 IP 地址限制访问。

    如果有多个用户通过您的客户端使用该服务,您可能还需要授权访问某些功能。例如:是否允许每个用户删除任何资源?如果答案是否定的,则必须实施

    对用户进行身份验证和授权

    在 RESTful API 中对用户进行身份验证的一种简单方法是使用 HTTP Basic 或 Digest Auth。在此设置中,用户凭据通过 Authorization 标头以用户名:密码的形式作为 Base64 编码散列发送到服务器。请注意,您只能通过使用 HTTPS 的安全连接来执行此操作!

    此外,您还可以查看更复杂/复杂的做法,例如 OAuth

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-09
      • 1970-01-01
      • 1970-01-01
      • 2016-02-28
      • 1970-01-01
      • 2017-10-15
      • 2014-09-27
      • 1970-01-01
      相关资源
      最近更新 更多