Почему eval небезопасно в javascript?

Возможный дубликат:
Почему именно это зло?

Я читаю, что люди утверждают, что eval небезопасен при запуске на произвольный код ввода пользователя. Я понимаю это на других языках, которые работают на сервере, который обращается к файловой системе и т.д. Однако почему это имеет значение при выполнении кода в браузере? В конце концов, разве вы не можете просто запустить Firebug и написать любой произвольный script, который вы хотите? Итак, как же все иначе?

Ответ 1

Опасность eval только возвращает свою уродливую голову, когда вы обслуживаете script, написанную alice для пользователя bob для браузера bob для eval.

например. если боб входит в свой пароль на вашей странице, Алиса могла написать кейлоггер в пользовательском вводе eval ed и упорядочить данные, которые будут закодированы в script, которые bob (неосознанно) отправляют для подачи в alice. Это, как @Hunter2 предложил в комментариях, XSS-атаку.

Если вы не служите другим людям, вы правы, полагая, что это эквивалентно стрельбе из firebug

Ответ 2

Не думайте, что это небезопасно, для самого параноидального выполнения eval = null;