我在线查看,似乎找不到太多类似的故事,这是令人惊讶的。
我从提供商那里租了一台服务器,然后在那里运行我的服务器软件。我的iOS应用程序连接到它。它已经持续了一个多月没有任何问题,并且每天可以获得数十个连接。
大约30个小时前开始,有人开始每2秒钟连接一次。始终相同的IP。我怀疑他把手机放了30个小时?我的应用程序每日只有<100个用户,所以我没有竞争对手可以从中获益。
我终于使用iptable阻止了他的服务器。从软件工程方面来看,防止这类事情的常见做法是什么?我是否应该从服务器端跟踪并拒绝接受重复连接?我是否使用某种登录/握手,或者我该怎么办?
为了澄清,我不使用http或apache。我使用TCP上的自定义协议编写了一个基于BSD套接字的服务器。我还有一个加密哈希,如果消息没有正确散列,它将终止连接。
编辑:我在连接日志中计算了一下。在过去的30个小时内,共有3个IP连接10,000次。其中2人已经停止了。所有这些都来自亚洲一个我不会命名的小国。
答案 0 :(得分:0)
您需要在您的应用程序中实现某种抗机器人:
在高负载环境中使用的更复杂的抗机器人不仅可以检测和阻止单个IP地址,还可以检测和阻止整个IP地址范围(网络)。而且最好不要盲目地断开连接,而是将客户端重定向到验证码。
无论如何,没有完美的解决方案来区分机器人和普通客户:要么放弃一些好客户,要么允许一些机器人筛选你的反机器人。