iphone - 验证 iPhone http 请求

标签 iphone mysql http

我有一款 iPhone 游戏,我使用 LASSO 网页将分数添加到 MySQL 数据库。 它现在工作正常,但我得到一个“用户”连续提交了数百个不可能的好分数。我知道这不可能以“合法”的方式进行。 我现在正在更新应用程序并希望避免此类废话。 我最初的想法是去 Game Center,我会的,但这次更新几乎是完美的,所以我不想再打开它。

测试 HTTP 请求是否来 self 的应用程序的 iOS 设备而不是来自某些机器人或脚本的好方法是什么?

谢谢! 哈南

这是我的请求代码:

int gameTypeId = 1; // Nonograms=1, Nonograms iPad=2, LoopMaster=3

NSString *name = [[NSUserDefaults standardUserDefaults] objectForKey:@"player_name"];
NSString *place = [[NSUserDefaults standardUserDefaults] objectForKey:@"player_where_from"];
NSString *scoreString = [self formatFinalScore];

NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
[parameters setValue: name forKey: @"name"];
[parameters setValue: place forKey: @"place"];

NSString *post1_encodestrings = [@"" stringByAppendingString: [parameters urlEncodedString]];
NSString *post1 = [NSString stringWithFormat: @"game_id=%d&game_size=%d&game_level=1&score=%f&score_string=%@&%@",gameTypeId,self.thisGameSize,self.gameFinalScore,scoreString,post1_encodestrings];

NSData *postData = [post1 dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];

NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init]autorelease]; // 
[request setURL:[NSURL URLWithString:@"http://www.tmipublishing.com/hotcocoa/lasso/add_score_to_database.lasso"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

NSURLConnection *conn=[[NSURLConnection alloc] initWithRequest:request delegate:self];

最佳答案

您不能改为通过 HTTPS 执行请求吗?如果使用 NSMutableURLRequest 很容易做到(我不知道;我不是 Cocoa 开发人员),这可能是最简单和最直接的更改。如果他有一部越狱的手机并且在内存中修改了乐谱,那么你无论如何都完蛋了,但它应该阻止一个有数据包嗅探器的人。它绝不是完全安全的,我想它可能容易受到重放攻击(也许我错了),但一遍又一遍地发布相同的分数可能不会给你带来太多好处,这不是我们的银行数据正在谈论。

关于iphone - 验证 iPhone http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4066295/

相关文章:

iphone - 获取在 UIWebView 中加载的 pdf 文件的选定文本

ios - 从Xcode 6.3内部版本6d570开始,无法通过TestFlight安装内部版本

ios - UITableViewCell 动画破坏 UITableView 触摸检测和滚动

c# - Web 和 C# 之间的数据同步

php - 当我在 IO 操作上对 Node.js 进行基准测试时,为什么 PHP 比 Node.js 更胜一筹?

iOS - 使用设备摄像头识别 3D 对象

mysql - Rails 2.3.18 升级到 3.2.21 即时获取 "no method ' with_connection'"事件记录查询错误

MySQL:根据不同列的变化对列进行顺序编号

http - HTTP 100 和 200 状态码有什么区别?

java - 如何使用基于电子邮件地址的用户名对浏览器进行基本身份验证?