Перейти к содержимому



Подводные камни конструкции eval

#1 Vialls
Vialls
  • Неактивные
  • 581 сообщений
  • Репутация: 1
0

Обновлено 18 июля 2008 - 06:07  Отправлено 17 июля 2008 - 22:41

Ну в общем сабж. Какие подводные камни могут быть у конструкции eval. Как правильно следует её использовать относительно безопасности и т.д.

 

 

  • 0

#2 ZiTosS
ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 17 июля 2008 - 23:16

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

Поосторожнее с eval().

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

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

взято с http://www.nestor.minsk.by/

От себя добавлю, что eval исполняет не только системные команды, но также если я подключу каким-то образом свой файл с компа, я могу удалить весь твой хост...
Вообщем с eval надо быть очень окуратным
  • 0

#3 Vialls
Vialls
    Topic Starter
  • Неактивные
  • 581 сообщений
  • Репутация: 1

Отправлено 18 июля 2008 - 06:07

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



Похожие темы
  Название темы Автор Статистика Последнее сообщение

Пользователь месяца
DeHuC_64 DeHuC_64 1-й за Июнь
Очков активности: 33 0 тем, 22 сообщения, 1 балл репутации
Сайт: russiangreat.ru
ТОП самых активных за этот месяц
  • Фотография BuxarNET
    #1

    BuxarNET
    Очков активности: 18 1 тема, 9 сообщений, 1 балл репутации

  • Фотография HITMAN84
    #2

    HITMAN84
    Очков активности: 15 2 темы, 4 сообщения, 1 балл репутации

  • Фотография BLIK
    #3

    BLIK
    Очков активности: 13.5 0 тем, 9 сообщений, 1 балл репутации

  • Фотография DeHuC_64
    #4

    DeHuC_64 (russiangreat.ru)
    Очков активности: 12 Вне конкурса за определение пользователя месяца

  • Фотография vetalbon
    #5

    vetalbon
    Очков активности: 9 0 тем, 6 сообщений, 1 балл репутации

  • Фотография Teves
    #6

    Teves
    Очков активности: 7.5 0 тем, 5 сообщений, 1 балл репутации

  • Фотография Constantine
    #7

    Constantine (constantinablog.ru)
    Очков активности: 6 1 тема, 1 сообщение, 1 балл репутации

  • Фотография miketomlin
    #8

    miketomlin
    Очков активности: 6 0 тем, 4 сообщения, 1 балл репутации

  • Фотография Silver
    #9

    Silver
    Очков активности: 6 0 тем, 4 сообщения, 1 балл репутации

  • Фотография xproxy
    #10

    xproxy
    Очков активности: 4.5 1 тема, 0 сообщений, 1 балл репутации

  • Показать весь ТОП 10

Поддержите форум! =)
Топ 5 участников по репутации

Оформление форума – IPBSkins.ru