Показать сообщение отдельно
  #8 (permalink)  
Старый 28.11.2019, 18:32
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Да на здоровье, но если вы таким образом определяете действия на клиенте, то одновременно определяете и потенциальную уязвимость его. Конечно же самому себе вы не собираетесь вредить, а вот через такую "дыру" могут вредить другие.

Почему бы не определить функции на клиенте, запуск которых и параметры для которых может определять сервер в зависимости от задач или условий? Сервер возвращает имя функции/функций и ее/их параметров переданных как json:

//определенные функции
const exe = {
    a:function([...a]) {
        console.log(a)
    },
    b:function(a) {
        console.log(a)
    }
};

//ответ сервера в формате json после декодирования
let o = {
    "fn": {
        "a": [1,2,3],
        "b": 5,
        "d": 44 //а это лажа, такого не определено, ничего не произойдет
    }
};

//запуск имеющихся функций
if(o.fn) { //если в ответе севера определен запуск функций
    for(let f in o.fn) exe[f] && exe[f](o.fn[f]) //если определено, запускаем
}

Последний раз редактировалось laimas, 29.11.2019 в 03:57.
Ответить с цитированием