This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Вопрос Система белого списка.

rundaniss

Участник портала
3 Ноя 2021
120
7
48
Как реализовать систему белого списка? Цель системы : при заходе, сервер проверяет, есть ли сошиал в таблице БД, если есть, то ничего не происходит. А если нету, то сервер обрывает соединение.
 

Harland David Sanders

🍔 ChefBurger
Команда форума
High developer
10 Сен 2020
3,675
2,873
219
Имел ввиду, как в коде реализовать
Аааа понятно.

JavaScript:
var whitelistState = true; // whitelist state true / false

mp.events.add('playerJoin', player => {

    if(whitelistState)
    {
        mysql.executeQuery(`SELECT * FROM white_list WHERE social = '${player.socialClub}'`, function (err, rows, fields) {
            if (!rows.length) {
                player.outputChatBox("[Whitelist] У вас нет доступа на сервер в данный момент!");
                player.kick();
                return;
            }
        });
    }
});
 
Реакции: Gastello

rundaniss

Участник портала
3 Ноя 2021
120
7
48
пасеба
 

FlameProfi

Начинающий специалист
18 Дек 2020
454
50
76

JavaScript:
mp.events.add('server:login:success:after', (player:PlayerMp) => {
    if(!methods.isTestServer()) return true;
    if (whitelist.list.includes(player.socialClub.toLowerCase()) || player.ip == "127.0.0.1") return true;
    setTimeout(() => {
        if (!mp.players.exists(player)) return;
        user.disableAllControls(player, true)
        user.hideLoadDisplay(player);
        user.bigAlert(player, `У вас нет доступа к тестовому серверу`, "error", 120000);
        user.kick(player, 'У вас нет доступа к тестовому серверу');
    }, 5000)
});
 
Реакции: Gastello

Kusto

Участник портала
12 Сен 2024
64
8
17
а куда вставить его?
 

enotit

Высший разум
High developer
BackEnd developer
13 Ноя 2020
1,640
524
187
22

enotit

Высший разум
High developer
BackEnd developer
13 Ноя 2020
1,640
524
187
22

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,379
813
181
34
В этом коде есть уязвимость SQL инъекции.

Лучше использовать вот так:
Код:
mp.events.add('playerJoin', player => {

    if(whitelistState) {
        const query = 'SELECT * FROM white_list WHERE social = ?';
        mysql.executeQuery(query, [player.socialClub], function (err, rows, fields) {
            if (err) {
                console.error(err);
                return;
            }

            if (!rows.length) {
                player.outputChatBox("[Whitelist] У вас нет доступа на сервер в данный момент!");
                player.kick();
            }
        });
    }
});
 
Реакции: Mi-Zaft

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,379
813
181
34

enotit

Высший разум
High developer
BackEnd developer
13 Ноя 2020
1,640
524
187
22

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,379
813
181
34
Реакции: enotit

Similar threads