gpt4 book ai didi

java - Play 安全!来自外部申请

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:29:41 25 4
gpt4 key购买 nike

我正在使用 Play 编写私有(private) REST API!我将从移动应用程序调用它,但我对如何保证它的安全感到困惑。

在研究 Play! 文档中的另一个博客引擎示例时,我研究了他们的 authentication example ,它处理通过浏览器登录的问题。根据我对 Play! 的安全模块的了解,它有助于浏览器 session 。此外,我看到的每个 StackOverflow 问题都与网络上的管理模块有关,而且这些问题也与 session 有关。

Does the Play! framework have any built in mechanism to prevent session hijacking?

Enforce Https routing for login with play framework

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

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

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

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

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

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

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

最佳答案

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

查看 Play 的 OAuth provider 模块。如果你谷歌一下,你可能会找到一个用于 Play 的 OAuth client 模块,但那是 OAuth 的另一面,允许你的网络应用程序向第 3 方提供商授权。然后,您将在移动应用程序中使用 OAuth 客户端库来处理访问 token 的获取。

它甚至可以是 OAuth 的通用 Java 库 - Play 2.0 documentation for OAuth声明它没有提供 OAuth 2.0 模块,因为它非常简单,甚至不需要库。但是有a few Java libraries available .

这是一个项目,其中有人将一些 OAuth 提供者的东西与 Play 放在一起(引用自 this forum post ):

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

关于java - Play 安全!来自外部申请,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15315231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com