Iphone 安全在线游戏http get/post请求(如何避免重复发送相同的http req)
在我的游戏/应用程序(iPhone)中,客户端向游戏http服务器发送http请求(get或post)。 申请表格如下: gameserver.com/userId/givebonus/100 例如,这将给userId加值100 现在,我们加密服务器请求,它将变成: gameserver.com/42c34c234/ghjghjg4hj32g42jh2/424j23gh4h234j23 我不会为某个黑客试图解密来揭示这一切的意义而大惊小怪, 我担心的是嗅探。 因为一旦黑客知道: gameserver.com/42c34c234/ghjghjg4hj32g42jh2/424j23gh4h234j23 加上+100,它可以一次又一次地发送相同的请求 那么你如何防止这种情况呢 与少数朋友交谈,这些都是可能的解决方案,但没有一个更容易实施或更安全:Iphone 安全在线游戏http get/post请求(如何避免重复发送相同的http req),iphone,objective-c,http,https,httpwebrequest,Iphone,Objective C,Http,Https,Httpwebrequest,在我的游戏/应用程序(iPhone)中,客户端向游戏http服务器发送http请求(get或post)。 申请表格如下: gameserver.com/userId/givebonus/100 例如,这将给userId加值100 现在,我们加密服务器请求,它将变成: gameserver.com/42c34c234/ghjghjg4hj32g42jh2/424j23gh4h234j23 我不会为某个黑客试图解密来揭示这一切的意义而大惊小怪, 我担心的是嗅探。 因为一旦黑客知道: gameserv
- 移动所有(大部分)逻辑服务器端
- 与第一个请求握手并仅响应该mac地址。(我想这行不通)
- 动态更改私有加密密钥?怎么做
- 加密整个请求,基本上使用https?(不知道怎么办:)
但不要被愚弄到认为这在某种程度上是“安全的”,因为它不是。您可以使用一种变体来防止对网站的CSRF攻击(我假设您正在控制服务器):
- 让客户机向
。http://gameserver.example/userId/givebonus
- 在服务器端生成UUID或类似的东西,将其存储在服务器上的DB中,并与某种“挂起”表中的用户ID关联
- 对此GET的响应应包含此UUID(如HTML表单中的隐藏标记)
- 让客户端发送一个POST请求,其中包含UUID和您想要给出的分数。
- 在服务器上,对照数据库中的UUID进行检查,如果之前没有执行过,则仅执行增量。在事务期间,将其从挂起列表中删除
http://gameserver.com/userId/givebonus/100
.GET是一种安全的方法,也就是说,您可以根据需要多次执行,并且不会影响服务器状态;这是通过HTTP和REST的设计实现的。显然,如果您对GET执行操作,这会导致问题。我建议对有副作用的操作使用POST,然后将金额和操作名称放入请求实体中
(当然,将HTTPS与之结合使用并没有害处。)没有简单的答案。为什么不使用ssl?或者预共享密钥不起作用。有人想要获得奖金,可以解析html。此外,这是一个iPhone应用程序,因此必须将UUID发送到设备以响应http请求,攻击者可以轻松调用该服务。我的意思是为了防止重播攻击k、 据我所知,这是必须的。话说回来,你是对的,用户可能会做出虚假的请求。为了防止在金额上作弊,我认为这需要更多地了解游戏涉及的整个过程。评分应该由服务器根据游戏中的某些动作进行,而不是在12月份之前或者,应用程序可以签署一些东西,可能是通过在设备上生成公钥/私钥对(以避免发送相同的密钥)并首先注册。