【问题标题】:Restricting access to REST API限制对 REST API 的访问
【发布时间】:2012-02-26 18:29:38
【问题描述】:

我正在使用 REST API 为我的应用程序制作 PHP 后端。

我想阻止其他人的脚本访问我的 API。我想过使用 $_SERVER['HTTP_REFERER'] 来避免它们。但是,in what situation does the HTTP_REFERER not work? 说我们不能依赖它。

还有其他方法可以将我的 API 仅限于我的客户端吗?

【问题讨论】:

    标签: api rest http-referer


    【解决方案1】:

    您应该查看OAuth 协议并为使用您的 API 的客户端实现它。

    【讨论】:

      【解决方案2】:

      您可以只使用普通的 HTTP 用户/通过身份验证。

      【讨论】:

        【解决方案3】:

        因此,您可以按照 Marcin 的建议实施 HTTP 基本身份验证。或者,您可以按照 HQarroum 的建议实施 OAuth。前者更容易实现。对于 HTTP BASIC,来自客户端的请求如下所示:

        .. https://用户名:密码@yourbackend.host.com/resource/method/foo/bar ..

        实现 HTTP 基本身份验证非常简单。在 Apache 中,请参阅 this。对于 nginx,请参阅this

        关于 OAuth,实现起来有点复杂。如果您正在研究 OAuth,并且您不需要不同的范围(访问不同级别数据的授权级别),那么您应该实现一个两条腿的 OAuth 流程。但是,我确实认为,如果您是受保护资源的唯一消费者,OAuth 可能会有点矫枉过正。

        我建议在所有情况下都使用 SSL (https)。

        问候,
        尼尔
        http://developer.mashery.com

        【讨论】:

          猜你喜欢
          • 2015-11-12
          • 2019-06-07
          • 2015-04-23
          • 2017-10-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-03-11
          • 1970-01-01
          相关资源
          最近更新 更多