1

我目前正在为手机游戏编写用户身份验证 API。我想确保用户只能从移动应用程序访问系统。(也就是说,如果从浏览器或 CURL(未经授权的系统)访问服务器 API,即使确切的 POST 参数有效,服务器也必须拒绝访问)。理想情况下,系统也不应该允许重放攻击。

有没有人知道如何做到这一点的想法或例子?

我正在考虑在客户端应用程序上添加一个具有当前时间戳的每个用户唯一的盐,并使用私钥对参数进行 SHA256 处理,然后在服务器上对其进行验证。这种方式将阻止来自浏览器或 CURL 的访问,因为攻击者需要获取私钥才能计算 SHA256 哈希。salt(包括时间戳)也将作为参数之一发送,如果超过特定时间,服务器将获取时间戳并拒绝访问。但是我不太确定安全性以及它是否是常见的或正确的做法,因为我从未设计过安全的应用程序,或者以前看过一个源代码。

感谢您的输入!

4

1 回答 1

0

这将阻止用户拦截网络上的请求并将它们与 CURL 一起使用。但是可以为您的应用程序提取私钥和签名算法并重新实现,因此该解决方案不会完全安全。

唉,如果没有向用户发布一些定制的防篡改硬件,您就无法在这里获得完整的安全性。

于 2013-08-06T11:49:39.077 回答