@luckyjenro0

Как предотвратить подключение к WEBSOCKET через внедрение кода в браузер?

У меня запрос идет следующим образом:

JS:
let data = {
    type: 'бла',
    param_1: 123,
    param_2: 321,
}


type - это мой внутренний идентификатор какие данные надо получить или отправить, думаю это понятно.

PHP:
$wsWorker->onMessage = function ($connection, $data) use ($wsWorker) {
    global $db;

    $data = json_decode($data);

    switch ($data->type) {
        case 'buy_premium':
        //Code...
        break;
        case 'secret_case':
        //Code...
        break;
    }
}


Так вот если юзер через браузер вставит свой код и обратиться к secret_case (Название узнает или угадает), то у него же все получиться? Как это предотвратить?
  • Вопрос задан
  • 130 просмотров
Пригласить эксперта
Ответы на вопрос 2
если юзер через браузер вставит свой код и обратиться к secret_case (Название узнает или угадает), то у него же все получиться? Как это предотвратить?
Проверять на бэкенде, что у этого конкретного пользователя есть доступ к этим конкретным данным в этот конкретный момент. Если нет доступа - данные не отдавать. Если доступ есть - не переживать.

И веб-сокеты, оказывается, к вашему вопросу не имеют почти никакого отношения.
Ответ написан
@rPman
код веб приложения в браузере - open source, любой может его открыть, прочитать, проанализировать и модифицировать, включая подстановки вызовов через консоль или плагины к браузеру.

не существует адекватной гарантирующей защиты, позволяющей скрыть от пользователя эту информацию.

наиболее эффективная из имеющихся - это обфускация кода, запутывание его на столько что затраты на его анализ станут неподъемно дорогими (достаточными чтобы не было смысла этим заниматься).

Еще способы решения, выполнять критичную логику на сервере, а клиент пусть будет просто отображением, вырожденный случай - на сервере запускается приложение а на клиент транслируется ее изображение, само собой на практике на столько сильно переносить код на сервер не обязательно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы