代码之家  ›  专栏  ›  技术社区  ›  Henrik P. Hessel

我还应该为我的API提供基本身份验证吗

  •  2
  • Henrik P. Hessel  · 技术社区  · 14 年前

    我最新的API很快就要“发布”了。从一个“早期并且经常发布”的背景中,我计划在更高版本中实现OAuth。

    为什么要使用Twitter? removes Basic Auth from its API ?在任何API中使用基本身份验证有哪些优点和缺点,以及可能带来的安全影响?

    最好的
    亨利克

    1 回复  |  直到 14 年前
        1
  •  1
  •   Buhake Sindi Tesnep    14 年前

    Twitter删除基本授权的可能原因(在我看来)是基于基本授权是基于 Base64 encoding . 基本授权头允许您散列用户名和密码的字符串说明(用冒号分隔)。

    例如(伪代码,独立于语言)

    String basicAuth = Base64Encode("username:password"); //where username is my username and password is password.
    httpRequestHeader.setHeader("Authorization", "Basic " + basicAuth);
    

    窃听者可以截获HTTP请求,检索 Authorization 头文件,解码base64编码流并获取用户的用户名和密码。编码器/解码器代码可以在互联网上的任何地方找到。

    现在,窃听者使用该用户名和密码登录Twitter,并成为“新”用户(并更改密码,使当前用户不再登录)。

    或多或少,基本身份验证的陷阱可以找到 here .

    其次,Twitter希望在 出版商网站 不通过第三方客户端远程发送。 OAuth 提供这种能力。