安全随玩!来自外部应用程序

2023-12-28

我正在努力使用 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(使用前将#替换为@)

安全随玩!来自外部应用程序 的相关文章

随机推荐

  • IBOutlet 声明?

    我已经看到下面的代码以 3 种不同的方式编写 关于 IBOutlet 这有关系吗 我想说将 IBOutlet 添加到声明和 property 中会更简洁 只是财产 class SwitchViewController interface i
  • 关于对象比较

    我有一个 java 类 Rec 我有两个实例 Rec1 和 Rec2 我想检查 Rec1 和 Rec2 的值是否相等 如果我这样做 Rec1 equals Rec2 是正确的做法吗 class Rec private BigDecimal
  • 如何从 URL 参数获取 unicode 字符?

    我需要使用 GET 请求通过 JavaScript 客户端将 JSON 发送到我的服务器 因此我开始回显响应以确保翻译过程中不会丢失任何内容 普通文本似乎没有问题 但是一旦我包含任何类型的 Unicode 字符 例如 该字符就会以某种方式编
  • JavaScript:回调函数参数与其他变量同名?

    var str internet performAction function str console log str 私有变量有问题吗str并且还有一个带有同名参数的回调函数 Thanks 这只是一个标准范围的情况 它是作为参数传递给另一
  • Android 机器未联网

    当我的应用程序连接到 WiFi 网络时 我在运行网络服务时遇到问题 我收到以下异常 java net SocketException socket failed ENONET Machine is not on the network 在下
  • 是否可以在不使用图像映射软件的情况下获得图像映射的坐标?

    我正在学习 html css 令我困惑的一件事是图像映射的想法 我该如何获取图像一部分的坐标并将其插入我的区域标签而不使用像 gimp 这样的图像映射软件 使用 gimp 的图像映射工具确实很有用 但我担心将来我需要知道如何在没有 gimp
  • 在 python 中从密码生成 RSA 密钥

    我希望能够生成并再生相同的 RSA 密钥password 和盐 单独在python 目前我正在使用 pycrypto 进行此操作 但是 它似乎并不能单独从密码生成相同的密钥 原因似乎是当 pycrypto 生成 RSA 密钥时 它在内部使用
  • 带有结构和空元胞数组的 MATLAB“bug”(或非常奇怪的行为)

    我不知道这里发生了什么事 我用的是R2006b 在我提交错误报告之前 拥有较新版本的人是否有机会测试一下他们是否获得相同的行为 code bug1 m function bug1 S struct nothing something add
  • JavaScript 正则表达式替换字符序列

    我想在这种特定情况下用下划线替换字符串开头和结尾的所有空格 var a console log myReplace a prints 即 第一个 之前的字符串开头的所有空格以及最后一个 之后的所有空格 其他所有内容 包括字符串中间的空格 保
  • Django/Python 循环模型参考

    好的 所以我正在尝试编写组织良好的代码 并实际制作单独的 django 应用程序 而不是将所有内容集中到 1 个应用程序中 我的问题是我有 3 个应用程序 每个应用程序都引用下一个应用程序中的 1 个其他模型 所以基本上我有一个无限循环 应
  • 如何在matplotlib中制作较粗的茎线

    我想在使用时在 python 中制作更粗的茎线plt stem 这是我的代码 import matplotlib pyplot as plt import numpy as np N 20 n np arange 0 2 N 1 x np
  • 静态块与静态方法 - 初始化静态字段

    出于好奇 我测量了静态块和静态方法初始值设定项之间的性能 首先 我在两个单独的 java 类中实现了上述方法 如下所示 First class Dummy static java util List
  • Glassfish 中的休眠 - Ejb3Configuration NoClassDefFoundError

    我已将 Hibernate 库放入 Glassfish 域和 Netbeans 项目的库集合中 hibernate entitymanager jar包含 HibernatePersistence 调用堆栈中的最后一个类 和 Ejb3Con
  • 带选择框的 Struts2 jQuery 自动完成器

    我使用过 Struts2 jQueryautocompleter对于我的 Struts 2 应用程序 这是我的代码 JSP
  • 所有 Python 脚本停止工作:macOS Monterey 12.6 更新后所有项目中的路径均已更改

    今天将 macOS Monterey 更新到 12 6 后 我所有的 Python 项目 脚本都停止工作 在我的项目的 venv 之一中检查 Python 二进制文件的符号链接 我看到原始文件是 Library Developer Comm
  • 使用 unity 解析具有多个构造函数的实例

    我想使用 unity 创建一个类的实例 其中该类有两个参数数量相同的构造函数 这是实例化 unityContainer Resolve
  • 部署到tomcat的war无法抛出java.lang.NoClassDefFoundError: javax/persistence/PersistenceException

    我是这个论坛的新手 也是 JPA EJB 的新手 我正在尝试将包含小型应用程序的 war 文件部署到 tomcat 服务器 该应用程序使用 JTA 与 Derby 数据库进行通信 当我在 eclipse 中运行的 tomcat 服务器上运行
  • 无法加载本机 TensorFlow 运行时 - TensorFlow 2.1

    我有一台台式电脑和一台笔记本 当我尝试在笔记本上安装tensorflow时 只需使用pip 安装张量流它工作正常 然后我在我的台式计算机上尝试了相同的操作 当我尝试运行最简单的代码时 import tensorflow as tf from
  • 这段代码会做什么? (内存管理)

    char p new char 200 char p1 p char p2 p 100 delete p1 顺便说一句 这不是一个测试 也不是我真正需要知道的任何事情 allocate memory for 200 chars p poin
  • 安全随玩!来自外部应用程序

    我正在努力使用 Play 编写一个私有 REST API 我将从移动应用程序拨打电话 但我对如何保证其安全感到困惑 在研究 Play 文档中的 Yet Another Blog Engine 示例时 我研究了他们的认证示例 http www