我正在设计 Flex 中的应用程序,该应用程序连接到一些 Web 服务以执行一些金融交易。Web 服务使用 https 协议进行保护,并要求在每个请求登录时创建用户令牌。这用于对用户进行身份验证和授权。到现在为止还挺好。
诀窍在于,并非我们所有的 Web 服务都是粗粒度的。举个例子,我们可以有两种 Web 服务方法:EnoughFounds 和 Transfer。因此,只有在 EnoughFounds 方法回复“true”后,我才会执行 Transfer。此逻辑在 Flex 应用程序代码中进行编程。
我所呈现的场景如下:如果有人下载应用程序并对其进行反编译怎么办。比修改代码,因此不执行步骤 EnougFunds。或者也许编写一个全新的客户端,甚至可能在其他技术中执行 Transfer 而无需通过 EnoughFunds 步骤。执行 Transfer 时,用户将在服务器上获得授权和身份验证;但由于他使用的是他的真实凭据,他将能够执行转移。他跳过的检查属于业务逻辑,而不是安全域。我需要以某种方式确保执行应用程序的代码是我编写和用户下载的未经修改的 Flex 代码。我怎样才能做到这一点?我知道我可以重写服务,以便在服务器上执行序列,
在我看来,必须有一些安全机制可以解决这个特定问题。
请注意,我不是在寻找有关最佳实践的建议。我的要求是不要更改服务器端的任何内容。如何在不更改服务的情况下保护协议级别的序列?