[INC] In-game authorization system

Manifest

Ура, не такой как все
Сообщения
181
Реакции
128
Данный пользователь был уличен в использовании бэкдора в приватных плагинах. Крайне не рекомендуется покупать какие либо товары у пользователя.
Доброго времени суток, товарищи Скриптёры!
Как-то вечерком, то ли от скуки, то ли от собственного интереса решил написать небольшую системку авторизации, в связи с недавним обнаружением эксплоита эмулятора. Не знаю насколько это сейчас уже актуально...

Система эта идёт в виде небольшой библиотеки для интегрирования в плагины и имеет некоторое встроенное API.

Функционал:
[*] Авторизация
[*] Установка пароля для новых пользователей
[*] Система секретного ключа, на случай утери основного пароля

Особенности системы о которых важно знать:
[*] Если использовать эту библиотеку для перекрытия других меню, то до введения пароля меню открыто не будет
[*] Поддержка только SQLite, потому что особой надобности MySQL я здесь не вижу
[*] Пароль требуется не при входе, а непосредственно перед заданным скриптером действием
[*] Если во время установки пароля и/или секретного ключа игрок вышел из игры - пароль не будет установлен
[*] Пароль хранится в MD5 формате

Пробуем перекрывать такие команды как: admin, shop, vip

PHP:
#pragma tabsize 4
#pragma semicolon 1
#include <ncc_protectme>

char sProtectedCmds[3][64] =  { "sm_admin", "sm_vip", "sm_shop" };

public void OnPluginStart()
{
    for (int i = 0; i < 3; i++) RegConsoleCmd(sProtectedCmds[i], ProtectFunc);
}

public Action ProtectFunc(int client, int args)
{
    if (!Protect_GetAuthorized(client))
        Protect_RequestAuth(client);
    return Plugin_Handled;
}



wb8u4NXRTwU.jpg


EVHCii1rAOk.jpg

Продуманы почти все мелочи, если у пользователя есть пароль, то «установка» нового недоступна

5E3V0LYz5DE.jpg

Код будет дорабатываться исходя из ваших пожеланий и актуальности идеи.
 

Вложения

  • ncc_protectme.inc
    17.1 КБ · Просмотры: 37
Последнее редактирование:

RusJJ

Доброе утро девачьки
Сообщения
2,582
Реакции
1,075
Да можно в принципе полностью систему написать
 

Manifest

Ура, не такой как все
Сообщения
181
Реакции
128
Данный пользователь был уличен в использовании бэкдора в приватных плагинах. Крайне не рекомендуется покупать какие либо товары у пользователя.

Dragokas

Добрая душа
Сообщения
229
Реакции
213
@Manifest, можно подробнее по поводу принципа работы упомянутого эксплойта, и возможных методов защиты от него (кроме как через установку доп. пароля для админов) ?
Спасибо
 

Dragokas

Добрая душа
Сообщения
229
Реакции
213
Спасибо, понятно. Значит не зря я писал дополнение к admins simple для двухфакторной авторизации по рейнджу ip, скоро выложу на AM.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #7
@Dragokas, а зачем такая привязка к admins_simple.ini? Лучше сделать независимо от хранилища админов.
 

Dragokas

Добрая душа
Сообщения
229
Реакции
213
Может и отдельно сделать, но мне показался удобным такой формат:

example of configs/admins_simple.ini lines:

- you can setup concrete ip:
"STEAM_1:1:12345678" "99:z" "" // 180.255.3.5 // Dragon

- you can setup several ip-s, as well as whole subnet if admin uses dynamic ip:
"STEAM_1:1:222712714" "99:z" "" // 87.250.34. 87.250.35. 190.34. // CrazyAdmin

- you can use "Name authentication" method together with confirming user's dynamic ip:
"Dragokas" "99:z" "" // 180.255.3.
 
Сверху Снизу