X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Подводные камни конструкции eval, Что может быть?
Vialls_mw
Vialls_mw
Topic Starter сообщение 17.7.2008, 23:41; Ответить: Vialls_mw
Сообщение #1


Ну в общем сабж. Какие подводные камни могут быть у конструкции eval. Как правильно следует её использовать относительно безопасности и т.д.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 18.7.2008, 0:16; Ответить: ZiTosS
Сообщение #2


Вот в этой статье описаны некоторые за и против eval http://habrahabr.ru/blog/php/40532.html
Поосторожнее с eval().

Передача данных, введенных пользователем, в eval() может быть крайне опасна. По существу, вы даете пользователю возможность выполнить какую вздумается команду! Вы будете уверены, что ввод поступает, например, с выпадающего меню, а на самом деле ваш юзер задумал нечто вроде:
script.php?input=;passthru("cat /etc/paswd");

Засунув свой код в этот оператор, юзер сможет заставить вашу программу полностью вывести файл /etc/passwd. Используйте eval() с умом, и любой ценой проверяйте ввод. Короче, используйте его только в случае крайней необходимости - т.е. в случае динамически генерируемого кода. Если он вам нужен для подстановки значений в темплейты и т.п., то это вы зря... Попробуйте лучше sprintf() или нормальные системы работы с темплейтами.
взято с http://www.nestor.minsk.by/

От себя добавлю, что eval исполняет не только системные команды, но также если я подключу каким-то образом свой файл с компа, я могу удалить весь твой хост...
Вообщем с eval надо быть очень окуратным
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Vialls_mw
Vialls_mw
Topic Starter сообщение 18.7.2008, 7:07; Ответить: Vialls_mw
Сообщение #3


Спасибо, в общем все ясно. Думаю лучше использовать require/include... Но, если есть уверенность, что юзер никак не сможет передать в скрипт PHP код, который идет в eval, то можно и его юзать..

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 20.4.2024, 17:33
Дизайн