我正在开发一个连接到基于XML的API的应用程序.我可以控制服务器和应用程序 - 有什么方法可以确保只有我的应用程序才能访问API?
没有用户身份验证.
编辑:
主要担心的是机器人通过扫描XML来窃取数据.
这个怎么样:
我请求与设备UDID的会话,我得到一个握手密钥.
<handshake>23354</handshake>
Run Code Online (Sandbox Code Playgroud)
从该字符串开始,根据约定的算法在服务器和客户端上计算密码(只需要很难重建)
让我们说现在我将1添加到握手键
password = 23354
Run Code Online (Sandbox Code Playgroud)
在所有API调用中,我然后将此密码与UDID一起传递.这将允许服务器将每个会话限制为一定数量的呼叫,不是吗?
你怎么看?
假设您可以控制 XML API,您可以提供快速质询响应机制。
生成一个数字并将其包含在您的应用程序和服务器端。使用它作为客户端和服务器上 srand() 的种子。
让客户的请求包含以下内容:
<handshake id="123">12312931</handshake>
Run Code Online (Sandbox Code Playgroud)
其中 id 表示第 123 个生成的随机数,12312931 是调用 rand() 123 次后的值。值 123 也应该是随机生成的数字(使用不同的种子生成!)。
这不是一个万无一失的挑战响应,但它简单而高效,并且除了基本的 ANSI C 库集之外不依赖任何其他东西。
请注意,它也不是非常安全 - 所有需要做的就是让您的客户端挑战他们自己的服务器,然后为每个种子值生成(在本例中)第 123 个随机数,直到他们找到它为止。所以我不会使用它来期望它提供加密级别的身份验证或访问控制。它只是提供了一个简单的、不平凡的挑战响应,该响应是高效且易于实现的。
| 归档时间: |
|
| 查看次数: |
2619 次 |
| 最近记录: |