我正在努力使用 Play 编写一个私有 REST API!我将从移动应用程序拨打电话,但我对如何保证其安全感到困惑。
在研究 Play! 文档中的 Yet Another Blog Engine 示例时,我研究了他们的认证示例 http://www.playframework.com/documentation/1.2.2/guide8,它涉及通过浏览器登录。根据我对 Play! 安全模块的了解,它有助于浏览器会话。此外,我看到的每个 StackOverflow 问题都与网络上的管理模块有关,并且这些问题也与会话有关。
玩吗!框架有任何内置机制来防止会话劫持吗? https://stackoverflow.com/questions/8731624/does-the-play-framework-have-any-built-in-mechanism-to-prevent-session-hijackin
使用 play 框架强制登录的 Https 路由 https://stackoverflow.com/questions/7415030/enforce-https-routing-for-login-with-play-framework
我目前对安全性应该如何工作的理解:
- 移动应用程序“登录”到网络应用程序并获取某种令牌
- 对于每个后续调用,令牌都会附加到 API 调用的末尾
- 如果移动用户“注销”或令牌过期,Web 应用程序将删除令牌
- 每个 API 调用都使用 HTTPS 以维护安全性
我是否可以从移动应用程序向我使用 Play! 创建的 Web 应用程序发出 HTTP 请求?框架同时保持安全?
我是否错误地处理了整个情况?
这是第一场比赛!我创建了应用程序,这是我第一次使用 Heroku。我并不太反对,如果它更容易/更有效/更适合解决这个问题,我会反对切换到其他东西。
EDIT:另外,在 Play! 的 YABE 教程中,他们似乎以纯文本形式检查密码。从一般角度来看,这怎么不是一个安全问题呢?
EDIT 2:我查看了 OAuth 提供商信息,它似乎解决了问题。我唯一担心的是 v2.0 存在已知的安全缺陷,而 v1.0 似乎实施起来很复杂,因为我只需要移动应用程序和 Web 应用程序之间的安全连接。如果我让每个调用都需要 SSL,我是否可以使每个 Play 方法仅将用户名和密码作为参数并完全忽略 OAuth?
您的移动应用程序通过 Web 应用程序对其自身进行授权的示例是通过像这样的授权框架来实现的OAuth http://oauth.net/。这允许 Web 应用程序让用户登录,然后向移动应用程序发出访问令牌,以便以该用户的身份发出请求,而移动应用程序无需处理用户的密码。
看一下 OAuthprovider播放模块。如果您 Google,您可能会找到 OAuthclientPlay 模块,但这是 OAuth 的另一端,允许您的 Web 应用程序针对第三方提供商进行授权。然后,您可以在移动应用程序中使用 OAuth 客户端库来处理获取访问令牌的问题。
它甚至可以是 OAuth 的通用 Java 库 -Play 2.0 OAuth 文档 https://github.com/playframework/Play20/wiki/ScalaOAuth声明它没有提供 OAuth 2.0 模块,因为它非常简单,甚至不需要库。然而有一些可用的 Java 库 http://oauth.net/2/.
这是一个项目,有人将一些 OAuth 提供者的东西与 Play 组合在一起(引用自这个论坛帖子 https://groups.google.com/forum/?fromgroups=#!topic/play-framework/A-m3kciWgXg):
https://github.com/mashup-fm/playframework-oauthprovider https://github.com/mashup-fm/playframework-oauthprovider
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)