Restful PUT / POST需要多少身份验证?

时间:2015-11-17 18:34:04

标签: rest

我有一个组织需要向我发送一组预先设定的非常敏感的数据。我目前的流程如下所示,

  1. 创建网页https://mywebsite.com/random/

  2. 该页面需要HTTPS并且只接受POST / PUT请求或重定向

  3. 我要做的第一件事是检查两个变量," unique_id_1"和" unique_id_2"。每个变量必须与我数据库中已有的帐户完全匹配。

  4. 此时,恶意的人必须首先找到网页,然后必须找出这两个变量的名称,并用正确的匹配数据填充它们。这种情况发生的可能性有多大?

    我考虑过添加第三个变量" shared_key"然后与提交者共享一串文本以包含每个PUT / POST请求。这有多大帮助?

    我的另一个想法是我们两个人都用预共享密钥写了一个日期。他们发送变量,我将它与我自己的匹配。这样,关键每天都会发生变化。矫枉过正?

    基本身份验证怎么样,它是否安全?我目前拒绝并重定向不正确的访问者/数据。似乎要求进行身份验证的网站只会做更多的事情来推迟潜在的黑客程序。

1 个答案:

答案 0 :(得分:0)

  

似乎要求进行身份验证的网站才会这样做   更多的是提示潜在的黑客程序。

这是可怕不实现身份验证的原因。您不需要为整个网站执行此操作,您只需为API端点执行此操作。

如果您的数据是非常敏感的,那么#34;除了HTTPS之外,您可能还需要考虑以下部分或全部内容:

  • 使用the Qualsys checker确保您的HTTPS本身安全。
  • 让API用户注册其IP地址并锁定服务,使其仅应答该IP。
  • 需要客户端证书(您创建的),与SSLVerifyClient require一样。
  • 在请求之上使用基本或摘要式身份验证。这样就不需要你的id1 / id2参数。
  • 如果您有足够的动力,请实施OAuth。
  • 而不是您的第3个共享密钥"参数,实施URL signing

此外:

  • 不要将客户日期的哈希值与服务器日期的哈希值进行比较。它将在午夜附近破裂,特别是如果客户端和服务器位于不同的时区或有漂移的时钟。