Анти спам командами

Тема в разделе "Запросы", создана пользователем Черная вдова, 16 сен 2013.

  1. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    Как мне известно, если часто в секунду использовать команду, особенно если она влечет за собой SQL запросы, то она может вызвать лаги на сервере или даже положить сервер
    Используя этот плагин http://world-source.ru/forum/118-3097-1#18405
    Он защищает от этого, но также он блокирует вполне безопасные команды, например вход в команду
    Собственно как защититься от этого и вообще надо оно или я неправильно информирован :D
     
  2. hellgu

    hellgu

    Сообщения:
    119
    Симпатии:
    30
    У меня кстати тоже самое :)
     
  3. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    Запили исключения
     
  4. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    The End Is Near...,
    Там прилично получится, проще наоборот, но тоже посидеть придется, мне вот просто интересно, раньше же вроде играл и нигде вроде сервер не ложили и не досили единственное что только не так давно добавились anti status и пинг, а другое не нуждается в защите ?
     
  5. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.989
    Симпатии:
    2.987
    типичный конфиг:
    status;
    ping;
    status;ping;status;ping;status;ping;status;ping;status;status;ping;status;ping;
    status;ping;status;ping;status;ping;status;status;status;status;status;status;status;status
    status;ping;status;ping;status;ping;status;ping;status;ping;status;status;ping;
    status;ping;status;ping;status;ping;status;ping;status;status;status;status;status;status;status;status
    status;ping;status;ping;status;ping;status;ping;status;ping;status;status;ping;
    status;ping;status;ping;status;ping;status;ping;status;status;status;status;status;status;status;status
    status;ping;status;ping;status;ping;status;ping;status;ping;status;status;ping;
    status;ping;status;ping;status;ping;status;ping;status;status;status;status;status;status;status;status
    groundlist;groundlist;groundlist;groundlist;groundlist;groundlist; groundlist;
    groundlist;groundlist;groundlist;groundlist;groundlist; groundlist;groundlist;
    groundlist;groundlist
    groundlist;groundlist;groundlist;groundlist;heartbeat;heartbeat;heartbeat;
    heartbeat;heartbeat;heartbeat;heartbeat;groundlist;groundlist;groundlist;groundlist;groundlist;groundlist
    groundlist;groundlist;groundlist;groundlist;heartbeat;heartbeat;heartbeat;heartbeat;heartbeat;heartbeat;
    heartbeat;groundlist;groundlist;groundlist;groundlist;groundlist;groundlist
    dump_entity_sizes;dump_entity_sizes;dump_entity_sizes;dump_entity_sizes;
    dump_entity_sizes;dump_entity_sizes;dump_entity_sizes;dump_entity_sizes;dump_entity_sizes;dump_entity_sizes
    groundlist;groundlist;groundlist;groundlist;groundlist;groundlist; groundlist;
    groundlist;groundlist;groundlist;groundlist;groundlist; groundlist;groundlist;groundlist;groundlist
    groundlist;groundlist;groundlist;groundlist; heartbeat;
    heartbeat;heartbeat;heartbeat;heartbeat;heartbeat;heartbeat;groundlist;groundlist;groundlist;groundlist;groundlist;groundlist
    groundlist;groundlist;groundlist;groundlist; heartbeat;heartbeat;heartbeat;heartbeat;heartbeat;heartbeat;heartbeat;
    groundlist;groundlist;groundlist;groundlist;groundlist;groundlist
    dump_entity_sizes;dump_entity_sizes;dump_entity_sizes;
    dump_entity_sizes;dump_entity_sizes;dump_entity_sizes;dump_entity_sizes;dump_entity_sizes;dump_entity_sizes;dump_entity_sizes
    es_version;ping;ping;es_version;es_version;ping;ping;es_version;es_version;ping;ping;
    es_version;ping;ping;es_version;es_version;ping;ping;es_version;es_version;ping;ping;es_version
    es_version;ping;ping;es_version;es_version;ping;ping;es_version;es_version;ping;ping;
    es_version;ping;ping;es_version;es_version;ping;ping;es_version;es_version;ping;ping;es_version
    ping;ping;ping;ping;ping;ping;ping;ping;ping;ping;ping;ping;ping;ping;ping;ping;ping;
    ping;ping;ping;ping;ping;ping;ping;ping;ping;ping;ping;ping;ping;ping;ping;ping;ping;ping;ping
    timeleft;timeleft;timeleft;timeleft;timeleft;timeleft;timeleft;timeleft;timeleft;timeleft;
    timeleft;timeleft;timeleft;timeleft;timeleft;timeleft;timeleft;timeleft;timeleft;timeleft
    clear
     
    hellgu нравится это.
  6. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    Как узнать какую команду использовал клиент ?
     

    Вложения:

  7. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    OnClientCommand -> GetCmdArg(1, command, sizeof(command)) -> "%s", coomand
     
    Черная вдова нравится это.
  8. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    The End Is Near...,
    А где вообще ты нашел эту информацию ?
     
  9. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    Я начал тестировать и у меня возникли сложности :D
    Допустим я закупаюсь по набор и большинство команд вовсе не распознается
    Код:
    Вы использовали команду 
    Вы использовали команду 
    Вы использовали команду 
    Вы использовали команду 
    Вы использовали команду 
    Вы использовали команду smokegrenade
    Вы использовали команду hegrenade
    Вы использовали команду flashbang
    Вы использовали команду flashbang
    
    И как проследить команду ? 1 - те клавиша нажатия в меню на 1 не подтвердилась у меня
     

    Вложения:

  10. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    for (new i = 0; i < args; i++) GetCmdArg(i, command, sizeof(command));
     
    Черная вдова и Серый™ нравится это.
  11. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.989
    Симпатии:
    2.987
    лучше так:
    PHP:
    public OnPluginStart()
        
    RegConsoleCmd("status"Command_Status);
    public 
    Action:Command_Status(clientargs)
    {
        return 
    Plugin_Handled;
    }
    это вообще запретит status
     
  12. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    R1KO,
    Так то можно залепить, но я хотел сделать, что если игрок использует какие либо зловредные команды слишком часто его просто банило по sb и с причиной вы пытались атаковать сервер командой допустим groundlist
     
  13. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.989
    Симпатии:
    2.987
    Черная вдова,
    PHP:
    #include <sourcemod>

    new lastUsedTime[MAXPLAYERS 1];

    public 
    OnPluginStart()
        
    RegConsoleCmd("status"Command_Status);

    public 
    Action:Command_Status(clientargs)
    {
        if(
    lastUsedTime[client] > GetTime() - 4)
        {
            
    ServerCommand("sm_ban #%d %d Спам Командами"GetClientUserId(client), 0);
            return 
    Plugin_Handled;
        }
        
    lastUsedTime[client] = GetTime();
        return 
    Plugin_Continue;
    }

     
    Серый™ и Черная вдова нравится это.
  14. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    R1KO,
    Да я знаю как все это делается :D , или ты за спасибо стараешься, ок оно твое
     
  15. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.989
    Симпатии:
    2.987
    Черная вдова, да при чем тут спасибо.
    Ты сказал бан сб, я кинул пример.
    А часть кода WS
     
  16. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    R1KO,
    Ну тот код который я скидывал выше :D

    Добавлено через 2 часа 9 минут
    Вот недоделанная версия
    g_com = 10; количество команд необходимое для наказания (наказание начинается с 12 исп. подряд)
    g_pun = 0; в минутах бан, если 0 - то кик
    и оставил квар anti_console_flood - можно исп команду раз в N секунд
    на 55 tagmismatch я не знаю как надо Float переводить в целое и еще потом уберу сообщения по отладке
     

    Вложения:

    Последнее редактирование: 17 сен 2013
  17. Scarface_slv

    Scarface_slv

    Сообщения:
    228
    Симпатии:
    47
    Так например new a = RoundToFloor(1.3);
     
    Черная вдова нравится это.
  18. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    GoDtm скачал, я польщен :D
     
  19. GoDtm666

    GoDtm666

    Сообщения:
    522
    Симпатии:
    558
    Просто глянул, чего же там такого мего написано :)