Страницы

Поиск по вопросам

среда, 5 декабря 2018 г.

Чем опасна функция eval у JavaScript

Чем опасна функция eval в JavaScript на клиентской стороне? Кроме того, что сложнее ее отлаживать не вижу недостатков. Насчет других языков тот же Python или PHP то там все понятно.


Ответ

eval требует компиляции, каждый раз когда вызывается, потому он замедляет работу скрипта Вредоносный скрипт может найти ​​путь для передачи аргумента в eval и выполнить любой зловредный код БЕЗ ведома пользователя eval это плохой подход. Это официальный костыль, всегда есть выход безопаснее и удобнее. Как в хорошей литературе пишут обычно "Если вы используете eval или goto - значит вы что-то делаете не так" eval наследует контекст в котором он вызван, каждый раз когда вызывается eval пытается получить доступ ко всем переменным, до которых может дотянуться, со всеми вытекающими
В любом случае, самая большая проблема eval'а это потенциальная дырища в безопасности, размером с вселенную. :) За всем не уследить.

Комментариев нет:

Отправить комментарий