Защита флуда коннектами в один слот
Доброго времени суток, уважаемые пользователи lightcode.ru! После того, как мой сервер атаковали коннектами в один слот (без вызова OnPlayerDisconnect), я решил написать простенькую защиту и поделиться ею с Вами.
Принцип работы:
Подключается игрок, мы запоминаем в переменную slotUsed, что слот использован. Игрок отключается - слот свободен. Если игрок подключается в уже занятый слот => наказываем его
PHP код:
new slotUsed[ MAX_PLAYERS char ];
new playersIP[ MAX_PLAYERS ][ 64 ];
public OnPlayerConnect( playerid ) {
new __IP[ 64 ];
GetPlayerIp( playerid, __IP, 64 );
if ( slotUsed{ playerid } && !strcmp( playersIP[ playerid ], __IP, true ) ) {
return Ban( playerid ); // Наказали игрока
}
GetPlayerIp( playerid, playersIP[ playerid ], 64 );
slotUsed{ playerid } = 1;
return true;
}
public OnPlayerDisconnect( playerid, reason ) {
slotUsed{ playerid } = 0;
return true;
}
Вот и всё!
Спасибо OKStyle за замечания по коду
Re: Защита флуда коннектами в один слот
Простая и полезная защита. Спасибо! + твой
Re: Защита флуда коннектами в один слот
Полезно. Неплохо. Без лишнего
+
Re: Защита флуда коннектами в один слот
Re: Защита флуда коннектами в один слот
Ниче не понял, объясни что это за код?
Re: Защита флуда коннектами в один слот
Цитата:
Сообщение от
LANSER
Ниче не понял, объясни что это за код?
Знаком с отключением игрока без вызова OnPlayerDisconnect? Этот код ловит такой вид атаки
Re: Защита флуда коннектами в один слот
Re: Защита флуда коннектами в один слот
добавить проверку по ip ещё нужно, т.к. в этом варианте кода может забанить игрока, зашедшего во время такой атаки. Кроме того, можно сделать char.
Кстати, PVar'ы тут могут и не подойти... Надо пробовать.
Re: Защита флуда коннектами в один слот
Хороший код, но защита на это уже есть, у меня стоит, срабатывает достаточно хорошо. Скачал отсюда.
Вы должны добавить отзыв кому-то ещё, прежде чем сможете снова добавить его Кемпер. :(
Re: Защита флуда коннектами в один слот
Цитата:
Сообщение от
OKStyle
добавить проверку по ip ещё нужно, т.к. в этом варианте кода может забанить игрока, зашедшего во время такой атаки. Кроме того, можно сделать char.
Кстати, PVar'ы тут могут и не подойти... Надо пробовать.
Спасибо, обновил код. PVars могут работать нестабильно в таком случае, лучше не рисковать