@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 (Название узнает или угадает), то у него же все получиться? Как это предотвратить?
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 2
если юзер через браузер вставит свой код и обратиться к secret_case (Название узнает или угадает), то у него же все получиться? Как это предотвратить?
Проверять на бэкенде, что у этого конкретного пользователя есть доступ к этим конкретным данным в этот конкретный момент. Если нет доступа - данные не отдавать. Если доступ есть - не переживать.

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

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

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

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

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

Похожие вопросы