我正在构建一个没有服务器端身份验证的 API。将为会话生成一个唯一的密钥(假设密钥很长且无法猜测),但不会在客户端上设置 cookie。客户端可以是带有 AJAX 的 Web 浏览器、使用 CURL 的 PHP 脚本或桌面应用程序。我想象的正常交易过程将是:
初遇
- 客户端发出初始请求,调用 start_session 方法
- 服务器生成一个密钥并将其与一些初始数据一起返回
- 客户端存储密钥供以后使用(例如 JavaScript 使用密钥设置 cookie)
下一个请求
- 客户端再次请求服务器,调用一些 set_data 方法,提供原始会话密钥,以及大量私人数据,如信用卡号、法律案件信息等。
- 服务器响应,并且响应成功消息
另一个请求
- 客户端再次请求服务器,提供原始会话密钥,并调用一些 get_data 方法
- 服务器以某种格式(例如 XML、JSON 等)响应所有私有数据
会话密钥如果不使用,将在 20 分钟后过期,并且所有 API URI 都需要 SSL。
我的担忧/问题是:我是否需要担心客户端是否泄露了会话密钥。如果没有身份验证,我相信原始请求者会将会话密钥保密。这是常见/安全的做法吗?