Что ж, раз мы не смогли полностью скрыть информацию о том, как работает система антибота в текущей версии, можно и раскрывать алгоритм её работы для всех страждущих.
Заодно
посмотрим, насколько люди, которые больше всего кричат, что они не
виноваты и вообще не пользуются никакими скриптами и программами,
правдивы в своих изречениях.
Антибот, начало.
Как вы заметили, пару недель назад, все наши сервера стали особенно сильно «лагать» и медленно открываться. Всё это произошло в течение 2-3 дней, но при этом количество людей онлайн не изменилось.
Естественно, мы решили выяснить причину этого. Через некоторое время обнаружили интересную вещь: с некоторых айпи-адресов шло очень много запросов на один и тот же адрес. Начали выяснять, и в конце мы увидели интересную картину: некоторые игроки умудряются делать до 10 запросов в секунду на один и тот же адрес. И таких «мега-игроков» одновременно онлайн более 100. При этом, обычный игрок редко успевает (в среднем, в течение минуты, например) делать запрос чаще чем 1 раз в секунду.
Другими словами, получается, что эти 100 игроков запросов делают столько же, сколько и 1000 обычных игроков. Мы обыграли гипотетическую ситуацию, что одним игроком одновременно играют несколько человек (хотя это запрещено, насколько я помню :) ), но всё равно получалось, что все эти гипотетические 10 игроков делают одно и тоже, постоянно, даже не думая ни о чём.
Результат размышлений – это скрипты или автоботы, которые «сломались» или неправильно настроены.
Было решено написать более подробную методику (до этого были только проверки идеи, но они тоже начинали приносить свои плоды), а так же подготовить всю соответствующую архитектуру.
Антибот, проверка
Следующим этапом – одним из шагов борьбы с лагами – была зачистка баз данных. Это занимает обычно полчаса-час, и при этом сервер закрыт.
Что никто не мог предполагать, так это то, что в этот момент также будут логироваться все действия игроков.
Интересно, знаете ли, было смотреть, как сразу же после закрытия сервера некоторые игроки стали пытаться уйти в дозор ещё чаще, чуть ли не 1000 раз в минуту.
игрок | кол-во | секунд | скорость |
808748 | 19228 | 2923 | 6,578173 |
283013 | 13810 | 2918 | 4,732694 |
Тут уж, извините, мы никак не можем допустить, что эти пресловутые 10 игроков настолько хотят играть, что обновляют страницу ещё до того, как браузер успел показать результат. И при этом делают это в течение часа.
Начались первые массовые баны.
Антибот, боевое дежурство
Проверка идеи прошла успешно, можно делать и автоскрипт для работы системы.
Как скрипт работает: он находит всех подозрительных игроков (больше определённого количества запросов в секунду) и логирует их действия. После этого данные показываются гейммастеру, и он сам анализирует информацию.
Другими словами: все решения по банам принимает только модератор, а не система. Система только «думает», кого показать .
Система работала и работает. До сих пор обнаруживаются те, кто используют ботов таким образом.
И вы знаете, на основе этих логов очень интересно наблюдать за самыми активными игроками, больше всех кричащими о своей невиновности.
Примеры «не»-виновности.
А теперь, пару примеров того как люди невиновны J
Взяли самых активных естественно.
Первый игрок:
http://forum.theabyss.ru/index.php?showtopic=286845
Хитов | Секунд | Скорость |
620 | 585 | 11 |
1705 | 620 | 28 |
1896 | 601 | 32 |
2032 | 620 | 33 |
1058 | 620 | 17 |
(5 раз его ловили)
Статистика: Хитов | Тип | Путь |
1896 | GET | /dozor.php |
Кусок лога: |
|
|
Дата | Тип | Путь |
21.03. 09:04:24 | GET | /dozor.php |
21.03. 09:04:24 | GET | /dozor.php |
21.03. 09:04:24 | GET | /dozor.php |
21.03. 09:04:24 | GET | /dozor.php |
21.03. 09:04:25 | GET | /dozor.php |
21.03. 09:04:25 | GET | /dozor.php |
21.03. 09:04:25 | GET | /dozor.php |
21.03. 09:04:25 | GET | /dozor.php |
21.03. 09:04:26 | GET | /dozor.php |
21.03. 09:04:26 | GET | /dozor.php |
21.03. 09:04:27 | GET | /dozor.php |
21.03. 09:04:27 | GET | /dozor.php |
21.03. 09:04:27 | GET | /dozor.php |
21.03. 09:04:27 | GET | /dozor.php |
21.03. 09:04:28 | GET | /dozor.php |
21.03. 09:04:28 | GET | /dozor.php |
21.03. 09:04:28 | GET | /dozor.php |
21.03. 09:04:28 | GET | /dozor.php |
21.03. 09:04:29 | GET | /dozor.php |
21.03. 09:04:29 | GET | /dozor.php |
21.03. 09:04:29 | GET | /dozor.php |
21.03. 09:04:29 | GET | /dozor.php |
Я очень хотел бы знать, что данный игрок делал в это утро, и что он делал так часто.