我写了一个与服务器通信的iPhone应用程序。应用程序向服务器发送消息并打印结果。
现在我有一个问题:有没有办法知道发送到服务器的消息是否来自iPhone?
我问这个是因为我想阻止攻击者从其他地方发送邮件并充斥服务器。
答案 0 :(得分:1)
如果您使用应用内购买,则会有一个完整的身份验证链,用于验证设备X购买的应用。您的服务器可以跟踪此信息,然后仅对以前经过身份验证的设备提供完整响应。
这种方法也使得盗版应用程序几乎不受影响。
此方法不会阻止协同一致的DDOS攻击,但您的服务器至少可以忽略无效的客户端,从而显着减少其工作负载。由于您的服务器在此处忽略了无效请求,因此它也使其对潜在的非设备用户不那么有吸引力,并且非法用户可能只会在他们不喜欢您时攻击您,而不是仅仅为您的服务器免费提供Web服务。
如果您不使用应用程序购买,您可以设置自己的身份验证过程并为设备提供令牌,让服务器记住所述令牌,然后仅为具有所述令牌的请求提供有效响应(适当的哈希和盐渍)。这种方法不会阻止盗版应用程序使用您的服务,但会有效阻止非设备使用您的网络服务(再次,除了协同一致的黑客行为)。
更简单的方法是使用混淆的请求格式,以便共同努力进行逆向工程。
在所有这些方法中,您可能必须监视服务器是否有异常活动,然后采取适当的步骤。
我鼓励您将您的努力与预期的风险相匹配。您可以花费数天,数月甚至数年来正确保护应用,确保成本值得奖励。
答案 1 :(得分:0)
您可以进行某种形式的身份验证,加密或指纹识别,例如。使用SHA,MD5等。这样你就可以让攻击者滥用你的服务器变得困难(但并非不可能)。
答案 2 :(得分:0)
在收到并检查服务器上的连接之前,您无法通过iPhone告诉它。如果你这样做,你已经开启了由于连接耗尽而导致DOS(拒绝服务)攻击的可能性。