通过基本网址“资源”进行HTTP会话跟踪?

时间:2016-06-26 20:09:30

标签: http https session-state sessiontracking

一些背景知识:我们目前正在尝试尝试在几家供应商之间指定一个HTTP API,以便不同的产品可以轻松互操作。我们还没有编写任何“服务器”软件,也没有编写任何客户端,只是列出了API的基础知识,以便每一方都可以开始原型设计,然后我们可以对其进行优化。因此,此API的典型用例将由给定应用程序内的(瘦)HTTP层使用,而不是在浏览器中使用。

如果没有会话状态,通信就没有意义,所以我们正在研究如何track sessions typically

事实是,我们希望尽可能简化API的实现,尽可能减轻任何使用过的HTTP库的负担。

有人建议基本上通过“网址重写”来管理会话,但更明确一点:

  • POST .../service/session {...}
  • =>回复201 Created和会话网址 .../service/session/{session-uuid}
  • 后续请求使用.../service/session/{session-uuid}/whatever
  • 结束会话,客户端执行DELETE .../service/session/{session-uuid}

环顾网络,初步搜索表明这有点不典型

这是一种有效的方法吗?具体的缺点或优点?

我们确定的专业人士:(请在适当的时候揭穿)

  • 简单的实施,不需要cookie或标题跟踪等
  • 与客户端身份验证机制正交 - 如果身份验证合适,我们可以轻松地将URL传递给可继续使用会话的第二个应用程序(在我们的案例中为有效用例)
  • 应该是安全的,因为我们专门为此 s

由于提到了PHPSESSID,我偶然发现this other question,其中提到“URL中的会话”方法可能更容易受到session fixation攻击。

但是,请参阅上面的第2个子弹:我们计划实现〜为此会话概念正交指定身份验证/授权,因此传递“会话”URL甚至可能是一个功能,所以我们认为我们将会话显示在URL中会很好。

0 个答案:

没有答案