Почему eval небезопасно в javascript?
Возможный дубликат:
Почему именно это зло?
Я читаю, что люди утверждают, что eval небезопасен при запуске на произвольный код ввода пользователя. Я понимаю это на других языках, которые работают на сервере, который обращается к файловой системе и т.д. Однако почему это имеет значение при выполнении кода в браузере? В конце концов, разве вы не можете просто запустить Firebug и написать любой произвольный script, который вы хотите? Итак, как же все иначе?
Ответы
Ответ 1
Опасность eval
только возвращает свою уродливую голову, когда вы обслуживаете script, написанную alice для пользователя bob для браузера bob для eval.
например. если боб входит в свой пароль на вашей странице, Алиса могла написать кейлоггер в пользовательском вводе eval
ed и упорядочить данные, которые будут закодированы в script, которые bob (неосознанно) отправляют для подачи в alice. Это, как @Hunter2 предложил в комментариях, XSS-атаку.
Если вы не служите другим людям, вы правы, полагая, что это эквивалентно стрельбе из firebug
Ответ 2
Не думайте, что это небезопасно, для самого параноидального выполнения eval = null;