【问题标题】:Securing Rails API with https使用 https 保护 Rails API
【发布时间】:2012-02-06 15:22:48
【问题描述】:

我正在创建我的第一个 API,并且正在使用 Ruby on Rails。 API 将严格地是服务器到服务器。我已经在 reading 这样的保护 API 的方法上做了很多工作,并决定使用 https 可能是最简单的方法,而不是 Oauth。

附加信息:

  • API 非常简单且只读
  • 我提供的数据并不便宜,我需要向我们的数据提供者和合作伙伴证明 API 是安全的,并且他们的数据将不会被盗。这是我需要保护它的唯一原因。

我最初的计划是简单地使用将通过 https 发送的私钥。我不需要担心客户端共享此密钥,因为它们是根据使用量计费的。

我的问题是如何在客户端服务器上强制使用 https?除了要求 API 路由使用 https 协议之外,我还需要做其他事情吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 api ssl https


    【解决方案1】:

    HTTPS 只做两件事: *给你一种温暖的模糊感觉,你正在与正确的服务器通信 * 使用加密防止窃听和篡改。

    限制对您的 API 的访问。对敏感数据使用 HTTPS 是必须的,所以使用它。您可以将前端服务器(例如 nginx)设置为专门使用 SSL(例如,不要配置端口 80/HTTP)。在这里阅读更多:http://ariejan.net/2011/10/22/automatically-switch-between-ssl-and-non-ssl-with-nginx-unicorn-rails

    然后,您将希望客户端对其自身进行身份验证,以便您可以检查他们是否是从您那里接收数据的正确方。您可以在此处使用 OAuth,但由于我认为只有一个客户端,这可能有点过头了。

    您可以采用的最简单的身份验证形式是需要身份验证令牌。每个请求都必须包含这个 API 令牌,您可以在服务器端验证它。您还可以使用它记录有关使用情况的指标。

    因此,基本上,每个请求都需要一个 API 密钥配置您的服务器,以便您的 API 仅通过 HTTPS 公开。

    【讨论】:

      猜你喜欢
      • 2015-06-16
      • 1970-01-01
      • 2013-01-20
      • 1970-01-01
      • 1970-01-01
      • 2015-01-31
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多