• Хостинг игровых серверов

    Максимальная производительность для ваших игровых серверов!

    Заказать сейчас

Обсудим Фикс подмены steamid

fuster

4 Апр 2023
2
0
0
Всем здравствуйте. Держу девблог сервер (200+). И стали происходить подмены steamid глобально, т.е. на сервер заходят боты с определенными никами и при этом эти боты являются игроками которым подменили id, а нормальных игроков кикает.

Как с этим бороться я пока не знаю.
1687109536512.png
 
Всем здравствуйте. Держу девблог сервер (200+). И стали происходить подмены steamid глобально, т.е. на сервер заходят боты с определенными никами и при этом эти боты являются игроками которым подменили id, а нормальных игроков кикает.

Как с этим бороться я пока не знаю.
1687109536512.png
Попробуй отсеить их таким методом
C#:
void OnPlayerConnected(BasePlayer player)
{
    ulong steamId = player.userID;
    string apiKey = "YOUR_API_KEY"; // не забудь поставить ключь
    string apiUrl = $"https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key={apiKey}&steamids={steamId}";

    using (WebClient client = new WebClient())
    {
        try
        {
            string response = client.DownloadString(apiUrl);
          
        }
        catch (WebException ex)
        {
            Console.WriteLine("Ошибка при запросе к API Steam Web: " + ex.Message);
        }
    }
}
 
Попробуй отсеить их таким методом
C#:
void OnPlayerConnected(BasePlayer player)
{
    ulong steamId = player.userID;
    string apiKey = "YOUR_API_KEY"; // не забудь поставить ключь
    string apiUrl = $"https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key={apiKey}&steamids={steamId}";

    using (WebClient client = new WebClient())
    {
        try
        {
            string response = client.DownloadString(apiUrl);
         
        }
        catch (WebException ex)
        {
            Console.WriteLine("Ошибка при запросе к API Steam Web: " + ex.Message);
        }
    }
}
Что даст эта проверка? Проверка на существования стим профиля?
От подмены не защитит.
Здесь полагаю нужно делать так,
- если игрок онлайн, то дубль игрока не пускает на сервер
- обратить внимание на ip ботов, думаю они будут подключаться с одного ip , если так то ловим 2+ подключения с одного ip и отправляем последующие профили в бан, пездюк пойдет перезагружать роутер в 90% случаев, если не заюзает прокси.
И тд, можно еще придумать различные методы
 
Что даст эта проверка? Проверка на существования стим профиля?
От подмены не защитит.
Здесь полагаю нужно делать так,
- если игрок онлайн, то дубль игрока не пускает на сервер
- обратить внимание на ip ботов, думаю они будут подключаться с одного ip , если так то ловим 2+ подключения с одного ip и отправляем последующие профили в бан, пездюк пойдет перезагружать роутер в 90% случаев, если не заюзает прокси.
И тд, можно еще придумать различные методы
просто если при проверке мы сравним данные по стим ид и сервера то сразу бан по ип еще до нормального захода на сервер , но так же если нет проксей, но можно обвернуть что в момент коннекта, сервер фиксирует откуда заходит человек с какого профиля и если чуть доработать то его просто не пустит на сервер
 
Этот код как старт для разработки мода по своим условиям, так как множество переменных при использовании подмены есть
 
Попробуй отсеить их таким методом
C#:
void OnPlayerConnected(BasePlayer player)
{
    ulong steamId = player.userID;
    string apiKey = "YOUR_API_KEY"; // не забудь поставить ключь
    string apiUrl = $"https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key={apiKey}&steamids={steamId}";

    using (WebClient client = new WebClient())
    {
        try
        {
            string response = client.DownloadString(apiUrl);
         
        }
        catch (WebException ex)
        {
            Console.WriteLine("Ошибка при запросе к API Steam Web: " + ex.Message);
        }
    }
}
у тебя код никуда не ведёт...
 
у тебя код никуда не ведёт...
я же написал что использовать как отсеиватель, а дальше уже думать как боротся, каким методом, так как множество переменных есть ( каким образом подменяют, используют ли проксю, конфигурация самого сервера) это как отправная точка
 
я же написал что использовать как отсеиватель, а дальше уже думать как боротся, каким методом, так как множество переменных есть ( каким образом подменяют, используют ли проксю, конфигурация самого сервера) это как отправная точка
BUDAPESHTER единственный возможное решение написал в каком направлении двигаться. остальное костыли и танцы с бубном. код из ноустима при желании можно реализовать в обычном .cs плагине, если повозится конечно
 
Активность
Пока никто не печатает сообщение