6

我正在使用 Play 编写私有 REST API!我将通过移动应用程序拨打电话,但我对如何保证它的安全感到困惑。

在处理 Play! 文档中的 Yet Another Blog Engine 示例时,我处理了他们的身份验证示例,它处理通过浏览器登录的问题。根据我对 Play! 的 Secure 模块的了解,它有助于浏览器会话。此外,我看到的每个 StackOverflow 问题都与网络上的管理模块有关,而且这些问题也与会话有关。

玩!框架是否有任何内置机制来防止会话劫持?

使用 play 框架强制使用 Https 路由进行登录

我目前对安全性应该如何工作的理解:

  • 移动应用程序“登录”到网络应用程序并获得某种令牌
  • 对于每个后续调用,令牌都会附加到 API 调用的末尾
  • 如果移动用户“注销”或令牌过期,Web 应用程序将删除令牌
  • 每个 API 调用都使用 HTTPS 以维护安全性

我是否可以从移动应用程序向我使用 Play 创建的 Web 应用程序发出 HTTP 请求!框架同时保持安全?

我是否错误地处理了整个情况?

这是第一次玩!我创建的应用程序,这是我第一次使用 Heroku。我并不太远,如果它更容易/更有效/更适合解决这个问题,我会反对切换到其他东西。

编辑:另外,在 Play! 的 YABE 教程中,他们似乎以纯文本形式检查密码。只是从一般的角度来看,这不是一个安全问题吗?

编辑 2:我查看了 OAuth 提供者信息,它似乎解决了这个问题。我唯一担心的是 v2.0 存在已知的安全漏洞,而 v1.0 似乎很难实现,因为我只需要移动应用程序和 Web 应用程序之间的安全连接。如果我让每个调用都需要 SSL,我是否可以让每个 Play 方法只将用户名和密码作为参数并完全忽略 OAuth?

4

1 回答 1

2

您使用 Web 应用程序对自己进行授权的移动应用程序示例是通过OAuth之类的授权框架实现的。这允许 Web 应用程序让用户登录,然后向移动应用程序发出访问令牌以作为该用户发出请求,而移动应用程序不必处理用户的密码。

查看 Play 的 OAuth提供程序模块。如果您使用 Google 搜索,您可能会找到一个用于 Play 的 OAuth客户端模块,但这是针对 OAuth 的另一端的,它允许您的 Web 应用程序针对 3rd 方提供商进行授权。然后,您将在移动应用程序中使用 OAuth 客户端库来处理获取访问令牌。

它甚至可以是 OAuth 的通用 Java 库——OAuth 的Play 2.0 文档指出它没有提供 OAuth 2.0 模块,因为它足够简单,甚至不需要库。但是有一些 Java 库可用

这是一个项目,其中有人将一些 OAuth 提供者的东西与 Play 放在一起(引用自此论坛帖子):

https://github.com/mashup-fm/playframework-oauthprovider

于 2013-03-09T20:05:49.537 回答