【问题标题】:Securing a REST API developed with Play Framework保护使用 Play Framework 开发的 REST API
【发布时间】:2016-01-17 14:34:48
【问题描述】:

我目前正在使用 Play Framework 2.3 开发 REST/JSON API。我目前正在考虑一种有效而简单的方法来保护 API。安全性是指某些操作需要最终用户经过身份验证才能被接受。

目前,我依赖 Play Framework 会话管理(提醒一下,它将所有会话数据存储在每个查询中发送的签名 cookie 中 - 因此,它是无状态的,即使 cookie 可以客户端读取,无法更新)。

流程很简单:

  1. 最终用户登录得益于 API 客户端发送登录查询
  2. 如果接受,则在回复中设置 cookie
  3. 在发送下一个查询时,API 客户端会自动添加 cookie,从而最终用户被 API 识别

我的问题如下:我真的需要在安全方面走得更远吗?我找不到这个现有机制不能正常工作的原因......

提前致谢!

PS:目前我既是 API 的开发者又是消费者,没有公开发布它的计划。

PPS:我正在开发的客户端是一个使用 AngularJS 的简单 webapp

【问题讨论】:

  • 我不明白这个问题,因为“进一步”非常广泛。明知自己是唯一的消费者,为什么还要对自己施加进一步的安全限制?您关心什么 - 只是一般的安全最佳实践、框架安全性的完整性,还是其他什么?
  • 确实如我所说,API 是不公开的。在这种情况下,这只是为了确保我不会忘记可能导致安全漏洞的大事(所以是的最佳实践)。但老实说,我的问题也适用于其他使用公共 API 的用例。
  • 查看这篇文章,它解释了在 play 18076206 和 play 自己的 documentation 上下文中的跨站点请求伪造问题

标签: api rest security http playframework


【解决方案1】:

你不需要。这是正确的解决方案。

您可以仅从可用性方面考虑使用令牌。

当然,我假设您使用 https。

【讨论】:

  • 是的,它基于 HTTPs。
  • 所以我看不到使用令牌 (JWT) 的任何安全理由。不同的方面——是的,令牌是更“REST”的方式,更灵活。关于 cookie 的另一件事 - 它甚至比其他标头更安全,但只有一点点 - 诸如“HTTPOnly”和“Secure”之类的东西。
  • 您可以尝试使用 Http 标头 x-auth-token,而不是设置 cookie 中的值。仍然不是要遵循的规则,但它是基于 Token 的身份验证的标准
猜你喜欢
  • 2012-10-08
  • 2014-12-30
  • 1970-01-01
  • 2012-07-18
  • 1970-01-01
  • 2014-12-28
  • 1970-01-01
  • 2012-11-27
  • 1970-01-01
相关资源
最近更新 更多