Security 保护移动应用程序与web应用程序通信,确定它实际上是正在通信的移动应用程序

Security 保护移动应用程序与web应用程序通信,确定它实际上是正在通信的移动应用程序,security,authentication,mobile,Security,Authentication,Mobile,我想确保在我的web应用服务器上请求HTTP get请求的客户端是专门来自我的移动应用程序的,而不是来自其他任何东西。我考虑过不同的选择,但仍然没有提出任何建议。最重要的是,我不希望出现用户交互,我希望移动应用程序本身能够处理这个问题。我想到的最好的办法是在移动应用程序上拥有一个web应用程序事先知道的密钥,但是如果移动应用程序曾经被反编译或者密钥不知何故被发现,那么这将是无用的。 两者之间的通信使用AES 128位CBC密码加密,并带有随机IV,该密码以明文形式来回传递,并在每次交易后更改 从

我想确保在我的web应用服务器上请求HTTP get请求的客户端是专门来自我的移动应用程序的,而不是来自其他任何东西。我考虑过不同的选择,但仍然没有提出任何建议。最重要的是,我不希望出现用户交互,我希望移动应用程序本身能够处理这个问题。我想到的最好的办法是在移动应用程序上拥有一个web应用程序事先知道的密钥,但是如果移动应用程序曾经被反编译或者密钥不知何故被发现,那么这将是无用的。 两者之间的通信使用AES 128位CBC密码加密,并带有随机IV,该密码以明文形式来回传递,并在每次交易后更改

从逻辑上来说,确定通信来自移动应用程序是不可能的,并且需要人工干预——比如要求用户输入一个他们记住并且已经在服务器上设置好的密码


最终,移动应用程序会更新web应用程序服务器上的数据库,因此我希望确保请求是从该应用程序发出的,而不是有人冒充该应用程序。

这是不可能的。这是由于其背后的基本属性。你无法支配客户的行为。没有任何东西阻止软件用户附加调试器、读取内存或修改客户端。

这是不可能的。这是由于其背后的基本属性。你无法支配客户的行为。没有什么能阻止软件用户附加调试器、读取内存或修改客户端。

在阅读了其他问题下的更多内容后,我意识到这是普遍的共识。谢谢你的信息。我认为唯一可行的方法是,如果手机具有与第三方服务器(如Microsoft)联系并进行自我验证的功能,然后可以将其验证回“我的web服务器”。@scape我认为MS对此没有帮助。问题是API设计,你不应该这样暴露你的服务器。在阅读了其他问题后,我意识到这是普遍的共识。谢谢你的信息。我认为唯一可行的方法是,如果手机具有与第三方服务器(如Microsoft)联系并进行自我验证的功能,然后可以将其验证回“我的web服务器”。@scape我认为MS对此没有帮助。问题是API设计,你不应该那样暴露你的服务器。