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



Подводные камни конструкции 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



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

Пользователь месяца
Vmir Vmir 1-й за Сентябрь
Очков активности: 60 4 темы, 8 сообщений, 2 балла репутации
ТОП самых активных за этот месяц
  • Фотография Zevss
    #1

    Zevss (domles43.ru)
    Очков активности: 22.5 3 темы, 6 сообщений, 1 балл репутации

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

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

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

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

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

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

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

    BLIK
    Очков активности: 12 Вне конкурса за определение пользователя месяца

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

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

  • Фотография павелЯ
    #7

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

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

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

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

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

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

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

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

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

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