Re: Атака сервера -
White_116 - 02.12.2013
Да. Читер отключается, но остаётся на сетевом уровне.
https://sampforum.blast.hk/showthread.php?tid=470156
Поковыряй.
Re: Атака сервера -
stabker - 02.12.2013
Если не желаете юзать ничего лишнего, то вот мой вариант фикса фейкового-дисконнекта.
pawn Code:
new AT_Timerid[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
if(AT_Timerid[playerid]) //На практике это вряд ли произойдет, но для самоуспокоения добавил
{
KillTimer(AT_Timerid[playerid]);
AT_Timerid[playerid] = 0;
}
//...
}
public OnPlayerDisconnect(playerid, reason)
{
//...
AT_Timerid[playerid] = SetTimerEx("AfterDisconnectTimer", 500, 0, "i", playerid);
}
forward AfterDisconnectTimer(const playerid);
public AfterDisconnectTimer(const playerid)
{
FastKick(playerid); //Это у меня для вызова обычного моментального Kick. Оставил, т.к. советую обратить на это внимание, учитывая то, что почти у всех щас макрос на Kick()
AT_Timerid[playerid] = 0;
}
Re: Атака сервера -
Jon_De - 02.12.2013
Code:
OnPlayerDisconnect(...)
{
// ваш код
Kick(playerid);
return 1;
}
не?
Re: Атака сервера -
stabker - 02.12.2013
Quote:
Originally Posted by Jon_De
Code:
OnPlayerDisconnect(...)
{
// ваш код
Kick(playerid);
return 1;
}
не?
|
https://sampforum.blast.hk/showthread.php?tid=400823&page=11
Re: Атака сервера -
Jon_De - 02.12.2013
Quote:
Originally Posted by stabker
|
краткий вариант так сказать.
new bool:connected[MAX_PLAYERS];
Code:
OnPlayerConnect(..)
{
if(connected[playerid] == true)
{
BanEx(playerid, "Connect flood");
return 1;
}
connected[playerid] = true;
return 1;
}
OnPlayerDisconnect(...)
{
if(connected[playerid] == false) return 1;
connected[playerid] = false;
// ваш код
Kick(playerid);
return 1;
}
правда есть чит который вызывает и Onplayerdisconnect И коннект и флудит этим, короче про защиту от хаков долго писать можно. то что выше - это капля в море
Re: Атака сервера -
stabker - 02.12.2013
Ну, попробуйте так сделать, и посмотрите на реакцию инклудов типа foreach. Все "OnPlayerDisconnect", которые выше, все равно выполняться будут.
Re: Атака сервера -
Jon_De - 02.12.2013
Quote:
Originally Posted by stabker
Ну, попробуйте так сделать, и посмотрите на реакцию инклудов типа foreach. Все "OnPlayerDisconnect" которые выше, все равно выполняться будут.
|
у меня так и сделано. всякие левые инклуды не использую
в конце концов, можно это в инклуд засунуть и поместить его выше остальных, не знаю точно как там всё делается, но коллбэки будут вызываться так как и было задумано
Re: Атака сервера -
DANGER1979 - 02.12.2013
В OnPlayerDisconnect нельзя выполнять Kick, т.к. ф-ия Kick вызовет множественное срабатывание OnPlayerDisconnect.
Re: Атака сервера -
Jon_De - 02.12.2013
Quote:
Originally Posted by DANGER1979
В OnPlayerDisconnect нельзя выполнять Kick, т.к. ф-ия Kick вызовет множественное срабатывание OnPlayerDisconnect.
|
Смотри последний мой код внимательно
Re: Атака сервера -
DANGER1979 - 03.12.2013
Когда то степашка кричал
Quote:
нафига вы ставите
if( !IsPlayerConnected(playerid) )
|
а счас мало того, что его надо ставить, так ещё надо добавлять
{ Kick(playerid); return 1; }
Re: Атака сервера -
Jon_De - 03.12.2013
Quote:
Originally Posted by DANGER1979
на 300 000 ставить?
|
Просто 300. И минусовать это значение в частовызываемых коллбэках
Re: Атака сервера -
stabker - 03.12.2013
Quote:
Originally Posted by DANGER1979
Когда то степашка кричал
а счас мало того, что его надо ставить, так ещё надо добавлять
{ Kick(playerid); return 1; }
|
О чем конкретно щас идет речь?
Re: Атака сервера -
DANGER1979 - 05.12.2013
Есть ещё какой то другой способ защитить сервер от флуда?
типа
[05/12/2013 23:19:14] Packet was modified, sent by id: 9, ip: 178.125.169.106:12113
[05/12/2013 23:19:14] Packet was modified, sent by id: 9, ip: 178.125.169.106:12113
[05/12/2013 23:19:14] Packet was modified, sent by id: 9, ip: 178.125.169.106:12113
Re: Атака сервера -
stabker - 05.12.2013
Quote:
Originally Posted by DANGER1979
Есть ещё какой то другой способ защитить сервер от флуда?
типа
[05/12/2013 23:19:14] Packet was modified, sent by id: 9, ip: 178.125.169.106:12113
[05/12/2013 23:19:14] Packet was modified, sent by id: 9, ip: 178.125.169.106:12113
[05/12/2013 23:19:14] Packet was modified, sent by id: 9, ip: 178.125.169.106:12113
|
Вышеописанные способы ловят это. Другое дело флуд "incoming connection" и "Blocking %s due to a 'server full' attack". Все равно лог читать нужно
Re: Атака сервера -
DANGER1979 - 05.12.2013
Quote:
Originally Posted by stabker
Вышеописанные способы ловят это. Другое дело флуд "incoming connection" и "Blocking
%s due to a 'server full' attack". Все равно лог читать нужно 
|
нет не ловят. Т.е. не во всех случаях. Иногда ловят, а иногда нет.
а как лог читать?
fopen("../server_log.txt",io_read)
типа так?
И не сильно ли это накладно по нагрузке?
ведь лог читать придётся как минимум раз в 5 сек. А он большой, и придётся его чистить каждые сутки.
Или есть плагины отлавливающие сообщения в лог на уровне сервера?
Re: Атака сервера -
stabker - 05.12.2013
Quote:
Originally Posted by DANGER1979
а как лог читать?
fopen("../server_log.txt",io_read)
типа так?
И не сильно ли это накладно по нагрузке?
ведь лог читать придётся как минимум раз в 5 сек. А он большой, и придётся его чистить каждые сутки.
Или есть плагины отлавливающие сообщения в лог на уровне сервера?
|
Есть плагины для работы с файлами, в т.ч. через них можно открывать файлы в основной папке сервера.
https://sampforum.blast.hk/showthread.php?tid=252918 или
http://jatochnietdan.com/projects/sa-mp/filemanager еще можно путь к файлу лога изменить, но тут такое обсуждать запрещено, либо этот плагин юзать
https://github.com/BJIADOKC/samp-plugin-antiattack, с ним нагрузки будет меньше всего, но я не разобрался
Нагрузка будет, но если грамотно все сделать, то она не такая уж большая и тормозить ничего не должна. Чистить не обязательно, для этого есть fseek (переход к позиции в файле). А если сделать специальную пометку в этих разных варнингах, то вообще все быстро будет, но опять же, здесь запрещено такое обсуждать
Re: Атака сервера -
Jon_De - 05.12.2013
Quote:
Originally Posted by DANGER1979
Есть ещё какой то другой способ защитить сервер от флуда?
типа
[05/12/2013 23:19:14] Packet was modified, sent by id: 9, ip: 178.125.169.106:12113
[05/12/2013 23:19:14] Packet was modified, sent by id: 9, ip: 178.125.169.106:12113
[05/12/2013 23:19:14] Packet was modified, sent by id: 9, ip: 178.125.169.106:12113
|
Acks sent = кол-во вызванных коллбэков и преданных сообщенией в т.ч. такого флуда
Я выше писал какое значение ставить
Re: Атака сервера -
Jon_De - 14.12.2013
От Invalid client connecting from удалось сделать кому то? в принципе все атаки которые идут от пдключеного клиента ловятся легко, а вот такие без понятия вообще
Re: Атака сервера -
Jon_De - 21.12.2013
Quote:
Originally Posted by Jon_De
От Invalid client connecting from удалось сделать кому то? в принципе все атаки которые идут от пдключеного клиента ловятся легко, а вот такие без понятия вообще
|
никто делиться не хочет как я понял ?
Re: Атака сервера -
White_116 - 21.12.2013
Quote:
Originally Posted by Jon_De
никто делиться не хочет как я понял ? 
|
Никто и не сделал. Средствами павн этого не сделать. Разве что банальное чтение лога.