java - 服务器安全扩展功能的最佳实践,具体取决于移动应用程序的版本

标签 java android algorithm mobile

我有什么:

  • 一个移动应用程序,在每次授权后检查应用程序的当前版本并显示一个包含一些信息的特殊对话框 - 有新版本的软件可用你不能在应用程序不会更新之前使用它。但并非所有用户都可以使用此功能。
  • 处理来自移动应用程序的任何请求(例如按条件搜索)和对客户端的响应的服务器

我需要的:

  • 向应用程序添加新功能后,旧版本不应使用该功能(例如,当前应用程序版本为 1.1.1 并且仅使用新修改,因为应用程序的版本为 1.1.2)。修改可以是多种多样的。

我能做的:

  • 强制更新所有拥有旧版本应用程序的客户端,并强制所有用户在通过定期更新(例如每月一次)进行新修改后更新应用程序。
  • 创建表Filter,添加修改类型、修改和特殊参数,并根据表Filter 中的值修改函数。 在我看来,所有这些方式都像是肮脏的黑客。

我想知道有什么方法可以做得更好。有没有人遇到过这样的问题并且有更好地解决它的好主意?谢谢。

最佳答案

通常 force to update 不是很好的方法,但如果你真的需要它,你可以将 User-Agent header 放在你对服务器的所有请求中,并创建一个在那里(在服务器上)进行过滤,这将向应用程序版本低于您想要的版本的所有请求返回特定错误。然后在应用程序中,您可以处理这个特定错误并显示所谓的死亡屏幕

您还可以对 API 进行版本控制。假设您在 /users 端点的响应中添加了新字段。所以 v1.1.1 可以调用 /v1/usersv1.1.2 可以与 /v2/users 一起工作>.

一般的想法是客户端应用程序非常轻,由服务器决定返回什么以及如何返回。

关于java - 服务器安全扩展功能的最佳实践,具体取决于移动应用程序的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51786445/

相关文章:

java - 没有 StackTrace 的 NullPointerException

android - 每行有多个 child 的 ExpandableListView

algorithm - 如何对我的网络应用程序的帖子进行排名?

java - 如何工作<s :push> tag in struts2?

java - Play 框架表单 (Java)

android - 如何在操作栏中隐藏搜索 View

java - 在 Java 中读取 XML InputStream 时出现问题

javascript - 计算抓取的最后一个工作页面的最快方法

algorithm - 最左节点有右 child 时的中序树遍历

java - Spark Sql 查询失败