Добрый день,
Видел на разных сайтах (например в Node-Red) такой функционал, что юзео может написать простую js функцию, где она принимает данные например из post запроса, парсит их по алгоритму в этой функции, а потом выдаёт результат в json.
Не могу правильно нагуглить. Подскажите, пожалуйста, в какую сторону копать, чтобы реализовать это?
Заранее спасибо.
Сергей Соколов, ну вот и гугл меня не понимает.
Прикрепляю скриншот
Т.е. есть некоторые данные которые поступают в функцию и юзер в ней пишет алгоритм как работать с этими данными, и потом return возвращает результат которые передаётся дальше или хранится в базе
Lockdog, юзер может ввести JS-код, и тот выполнится? Ещё непонятно, куда этот код подключается: откуда берёт входные данные и отправляет выходные.
И в каком контексте выполняется: это часть веб-страницы, или это браузерный extension ?
я как-то ради прикола делал такую штуку - ksp.herokuapp.com/rline (можно задавать функцию вычисления координат каждого нового шага змейки, смотреть что получилось и медитировать). Вот там как раз через new Function
Lockdog, обезопасить не требуется. Всё, что юзер написал в текстовом поле, он с тем же успехом может написать и выполнить в консоли. Так что если этот текст сразу парсится и выполняется (прямо тут же, на фронте, без участия бэка), то он не несет какой-то специфической опасности.
Alexandroppolus, пока не подумал над этим. По идее пользовательская функция нужна только для отображения данных, значит можно отрабатывать её только на фронте.
Lockdog, да, лучше на фронте. Если на бэке, то это надо очень серьезно упороться в ограничения для кода (по памяти, правам и т.д.), большая сложная задача. А на фронте главное, чтобы скрипт одного юзера никак не мог выполниться у другого.