【发布时间】:2013-02-25 06:01:26
【问题描述】:
我正在使用 Play 编写私有 REST API!我将通过移动应用程序拨打电话,但我对如何保证它的安全感到困惑。
在处理 Play! 文档中的 Yet Another Blog Engine 示例时,我使用了他们的 authentication example,它处理通过浏览器登录的问题。根据我对 Play! 的 Secure 模块的了解,它有助于浏览器会话。此外,我看到的每个 StackOverflow 问题都与网络上的管理模块有关,而且这些问题也与会话有关。
Does the Play! framework have any built in mechanism to prevent session hijacking?
Enforce Https routing for login with play framework
我目前对安全性应该如何工作的理解:
- 移动应用“登录”到网络应用并获取某种令牌
- 每次后续调用时,令牌都会附加到 API 调用的末尾
- 如果移动用户“注销”或令牌过期,Web 应用程序将删除令牌
- 每个 API 调用都使用 HTTPS 以维护安全
我是否可以从移动应用程序向我使用 Play 创建的 Web 应用程序发出 HTTP 请求!框架同时保持安全?
我是不是错误地处理了整个情况?
这是第一次播放!我创建的应用程序,这是我第一次使用 Heroku。如果它更容易/更有效/更适合解决这个问题,我会反对切换到其他东西。
编辑:另外,在 Play! 的 YABE 教程中,他们似乎以纯文本形式检查密码。只是从一般的角度来看,这不是安全问题吗?
编辑 2: 我查看了 OAuth 提供者信息,似乎可以解决问题。我唯一担心的是 v2.0 存在已知的安全漏洞,而 v1.0 似乎很难实现,因为我只需要移动应用程序和 Web 应用程序之间的安全连接。如果我让每个调用都需要 SSL,我是否可以让每个 Play 方法只将用户名和密码作为参数而完全忽略 OAuth?
【问题讨论】:
-
“在 Play! 的 YABE 教程中,他们似乎以纯文本形式检查密码” - 取决于您所说的纯文本是什么意思。如果是通过 HTTPS,在请求中发送密码是没有问题的。如果他们以纯文本形式将密码存储在数据库中,那就不好了。当教程“为简单起见”完全忽略基本安全性时感到羞耻。
-
从您使用的链接看来,您使用的是 Play 1.x。有什么理由不使用 2.x?
-
Heroku 默认使用 Play 1.2.4。我现在不知道升级它的原因,时间对于移动应用程序来说是最重要的。
标签: java security heroku playframework