mobile - 如何确保 http 请求不是手工制作的?

标签 mobile ssl cryptography

我如何确保我通过 http 请求发送到服务器的数据实际上是由我的应用程序(移动应用程序)生成的,而不是由用户手工制作的?

例如:如果我有一个游戏,我想将用户的分数提交给服务器,如何确保用户看不到请求数据并开始向服务器发送手工制作的分数?

我考虑过将哈希算法与应用 key 一起使用。因此请求将发送四段数据:分数、日期、用户 ID 和哈希值(分数+日期+用户 ID+secret_key)。然后,我可以在服务器上再次执行此哈希操作并验证数据是否合法。但是,如果黑客能够反汇编应用程序并查看 secret_key 是什么,我该如何保护自己呢? 除了使用哈希码对请求进行签名之外,还有更好的方法吗?

最佳答案

简短的回答,你不能。用户可以通过应用程序做的任何事情,他们都可以通过对应用程序进行逆向工程并做它会做的事情来做。您所能做的就是让他们的事情变得更难。

关于mobile - 如何确保 http 请求不是手工制作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22739495/

相关文章:

python - 使用 nginx 将 http 重定向到 https 而不是使用 django-sslify?

.net - 如何在 .NET 应用程序中使用从 Win32 CryptoAPI 生成的 key blob?

c# - Aes-Gcm/Aes-Cbc - 数据库存储 - 列设计

ios - Div 仅在 iphone 上有右边距

javascript - Windows Phone 8 图像比视口(viewport)宽

angular - 你如何让滚动条在移动设备中持久存在?

java - 如何以编程方式检查 X509 证书是否已在 Java Truststore 中?

ssl - 让我们在 ECS Fargate 上使用 traefick 加密 SSL

c# - 无法在第二台计算机上解密数据

ios - 如何使我的字体大小在各种设备上看起来不错? UIWebView 中 iPad 和 iPhone 的不同视口(viewport)