gpt4 book ai didi

php - AFNetworking 通过 HTTPS 发出发布请求

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:35:49 25 4
gpt4 key购买 nike

在我的 iPhone 应用程序中,目前我正在使用 AFHTTPRequestOperationManager 向我的服务器发送发布请求并获取数据。

但我注意到我的应用程序的一些用户已经破解了这些发布请求并更改了发布请求的值以增加他们在应用程序中的硬币。

所以我想让这些整个帖子请求加密/https(我什至不知道这个词)。我希望这些帖子请求不能被用户编辑。

有没有办法用 AFNetworking 做到这一点?我需要一个发布请求的示例和读取该请求的 PHP 示例。我搜索谷歌但找不到任何容易理解的东西。下面是我目前使用的 HTTP 请求模板。请给出详细的答案,我不是 AFNetworking 或 PHP 方面的专家。

NSString *url = [NSString stringWithFormat:@"%@getlist-s.php", [Globals getSiteUrl]];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/plain"];

NSDictionary *params = @{@"user_id": [Globals loggedInUser].Id,
@"action": @"get_list",
@"offset": [NSString stringWithFormat:@"%d", offset]
};

[manager POST:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {


} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@ %@", error, operation.responseString);

}];

最佳答案

您可以简单地重新配置您的网络服务器以使用 HTTPS 而不是 HTTP。这使用端口 443 而不是 80,并且需要 SSL 证书。幸运的是,您不再需要为这些支付费用,您可以通过 LetsEncrypt 免费获得一个。我建议关闭 HTTP 端点,这样用户就无法继续使用旧版本。

然后您可以更新您的代码,使所有端点都是 HTTPS 而不是 HTTP。

HTTPS 不仅加密请求和响应的内容,还加密域名后 URL 中的任何内容,使中间人攻击变得更加困难。也就是说,这不是一种万无一失的方法,因为用户仍然可以使用自己的根证书对自己的设备进行 MITM,但他们将如何做到这一点超出了本答案的范围。

另一层安全措施是使用 HMAC(基于哈希的消息验证码)。

应用程序将通过获取请求参数和共享 secret 并使用安全哈希算法对它们进行哈希处理并将其作为附加参数添加到请求中来生成一个。服务器可以通过获取提供的参数、使用相同的共享 key 、以完全相同的方式对它们进行散列并检查提供的 HMAC 和它刚刚生成的 HMAC 是否相同来验证它是否正确(并且请求是真实的)。

重要的是要确保您的共享 secret 在应用程序和您的服务器之间保密,并且永远不会在两者之间传输。如果您想聪明一点,您可以根据某些通用参数即时生成共享 secret ,但这可能会变得复杂、容易出错并影响合法用户。

这是一场猫捉老鼠的游戏,没有什么是完美的,如果有人真的想要欺骗系统,他们就会这么做,但这应该能阻止大多数随意的攻击者。

关于php - AFNetworking 通过 HTTPS 发出发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31490283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com