我想创建一个iphone应用程序,它由两部分组成:app本身和服务器端组件。
在用户请求中,应用程序将数据发送到将由人工操作员处理的服务器。
为防止iphone应用程序用户滥用,iphone的ID随请求一起发送,运营商可以将恶作剧黑名单拒绝他们的iphone访问该服务。
到目前为止一切顺利。 现在问题是:有人可以轻松发现服务器端组件的地址,并编写脚本以使用多个IP地址等发送虚假请求。
所以我的问题是:我怎样才能为自己辩护呢?
用于防止脚本攻击或要求用户自行注册的Captchas不适用于此特定应用程序。
如果我控制了下载,我会将一个唯一的ID与每个下载的应用相关联,但显然这不是appstore的选项。
您的方法是什么使服务器端部件更安全?
修改
服务器向客户端发送令牌的质询响应方案怎么样呢?客户端根据客户端构造一个新算法来知道两个算法?
至少这会让攻击者更难,因为他必须对ARM二进制文件进行反向工程。你有类似方法的经验(我有0)吗?
答案 0 :(得分:-1)
作为iPhone应用程序的一部分,您可以包含注册/注册功能,并在此过程中收集iPhone的ID。因此,在您的服务器上,您将拥有一个VALID ID列表,您可以忽略来自列表中没有的任何iPhone的请求(以及虚假/伪造的请求)。
答案 1 :(得分:-1)
iPhone应用程序可以对注册消息(包含设备ID)进行数字签名,并将其发送到Web应用程序。当然,这只有在有人从iPhone应用程序中提取密钥之后才会起作用,但它可能会支持...比如半小时。
真的,你做不到。遗憾。