【问题标题】:restful api .. session securityrestful api .. 会话安全
【发布时间】:2011-10-25 12:57:47
【问题描述】:

假设一个订购应用程序,用户“Ben”将能够通过发布来列出特定订单

/order/1

现在 .. 在此之前,我已经验证了“Ben”(用户名/密码身份验证)并将用户名作为 cookie 发送(使用 sha1 校验和签名)。

在每个 http 请求上,我都会收到告诉我“Bent”仍然经过身份验证的 cookie,但谁能阻止他发出

/order/23

id=23 的订单不属于“Ben”。

所以我想我应该写一些逻辑来确保 23 号订单实际上属于“Ben”……这是这种情况的最佳实践或模式吗?

我应该使用单独的“功能主键”,而不是串行主键 id 吗?

【问题讨论】:

  • 好吧..我自己一直在研究它。它与特权升级有关,并在link 进行了介绍……但我一直在研究
  • 也是 owasp 前 10 名中的 a4 OWASP
  • link

标签: rest restful-authentication restful-url


【解决方案1】:

我没有看到任何合理的订单自然主键。为了使其不易被发现,您可以使用 UUID(意外找到 /orders/4886ed80-dd71-11e0-9572-0800200c9a66 的机会很小)...

但是这将是默默无闻的安全。即使我无法猜出您订单的 UUID,我也可以嗅探您的流量,如果仅通过晦涩的 URL 提供安全性,我将能够对 Order 资源做任何我想做的事情。

这应该清楚表明在这种情况下您不能跳过身份验证。

【讨论】:

    猜你喜欢
    • 2018-07-27
    • 2020-04-28
    • 1970-01-01
    • 2017-11-12
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 2017-10-15
    相关资源
    最近更新 更多