代码之家  ›  专栏  ›  技术社区  ›  orokusaki

关于API的Web安全问题

  •  2
  • orokusaki  · 技术社区  · 14 年前

    我正在构建一个没有服务器端身份验证的API。将为会话生成一个唯一的密钥(假设密钥很长且无法猜测),但不会在客户端上设置cookie。客户端可以是带有AJAX的web浏览器、使用CURL的PHP脚本或桌面应用程序。我想象的正常交易过程是:

    初次相遇

    1. 客户端发出一个初始请求,调用一个启动会话方法
    2. 服务器生成一个密钥并返回它和一些初始数据
    3. 客户端存储密钥供以后使用(例如,JavaScript用密钥设置cookie)

    下一个请求

    1. 客户端再次请求服务器,调用某些set_数据方法,提供原始会话密钥,以及加载的私有数据,如信用卡号码、有关法律案件的信息等。
    2. 服务器响应,并用成功消息响应

    另一个请求

    1. 客户端再次请求服务器,提供原始会话密钥,并调用一些get_data方法
    2. 服务器以某种格式(如XML、JSON等)用所有私有数据进行响应

    会话密钥在20分钟内到期(如果不使用),并且 所有API uri都需要SSL .

    我的问题是 :我是否需要担心客户端是否泄漏了会话密钥。在没有身份验证的情况下,我相信原始请求者将会话密钥保持为私有。这是常见的/安全的做法吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   SLaks    14 年前

    除非你一直使用HTTPS,否则你很容易受到HTTP嗅探的攻击, 洛杉矶 火羊。

    Eve,如果您确实使用SSL,如果客户端页面不是SSL或包含任何非SSL Javascript(或同一域中的非SSL帧),那么您仍然易受攻击(对此您无能为力)

    回答你的问题完全取决于你的情况。
    编辑 :您应该在文档页面中警告客户机(开发人员)正确处理密钥。
    除此之外,还取决于客户的平均技能水平。
    你应该有某种免责声明(我不是律师)。

    可能没关系。