Помощник
|
Подводные камни конструкции eval, Что может быть? |
Vialls_mw
|
Сообщение
#1
|
||
|
|
||
|
|||
ZiTosS |
18.7.2008, 0:16;
Ответить: ZiTosS
Сообщение
#2
|
|
Вот в этой статье описаны некоторые за и против eval http://habrahabr.ru/blog/php/40532.html
Поосторожнее с eval(). взято с http://www.nestor.minsk.by/Передача данных, введенных пользователем, в eval() может быть крайне опасна. По существу, вы даете пользователю возможность выполнить какую вздумается команду! Вы будете уверены, что ввод поступает, например, с выпадающего меню, а на самом деле ваш юзер задумал нечто вроде: script.php?input=;passthru("cat /etc/paswd"); Засунув свой код в этот оператор, юзер сможет заставить вашу программу полностью вывести файл /etc/passwd. Используйте eval() с умом, и любой ценой проверяйте ввод. Короче, используйте его только в случае крайней необходимости - т.е. в случае динамически генерируемого кода. Если он вам нужен для подстановки значений в темплейты и т.п., то это вы зря... Попробуйте лучше sprintf() или нормальные системы работы с темплейтами. От себя добавлю, что eval исполняет не только системные команды, но также если я подключу каким-то образом свой файл с компа, я могу удалить весь твой хост... Вообщем с eval надо быть очень окуратным |
|
|
Vialls_mw
|
Сообщение
#3
|
|
|
Спасибо, в общем все ясно. Думаю лучше использовать require/include... Но, если есть уверенность, что юзер никак не сможет передать в скрипт PHP код, который идет в eval, то можно и его юзать..
|
|
|
||
|
Текстовая версия | Сейчас: 20.4.2024, 17:33 |