Вопрос № 34431: Здравствуйте.
Есть функция eval();
Я использую шаблоны в которых указаны переменные для отображения
int, string, array[key].
Какова безопасность такого вывода информации?
И еще я обнаружил что можно выводить и свойства ...
Вопрос № 34.431
Здравствуйте.
Есть функция eval();
Я использую шаблоны в которых указаны переменные для отображения
int, string, array[key].
Какова безопасность такого вывода информации?
И еще я обнаружил что можно выводить и свойства объектов.
Как нибудь можно ужесточить вывод для данной функции. например запретить обработку свойства объекта или элемента массива?
Заранее спасибо:)
Отвечает: Дмитрий Иванов
Здравствуйте, Оськин Дмитрий Владимирович!
безопасность использования eval зависит напрямую от програмиста, каких либо особых механизмов защиты в ней не предусмотренно.
--------- ставя оценку - подумай, может ты не все описал. ниже пятерки оценок не существует!
Ответ отправил: Дмитрий Иванов (статус: Студент)
Отправлен: 30.01.2006, 22:04
Отвечает: RedDevil
Здравствуйте, Оськин Дмитрий Владимирович!
Дмитрий Иванов, на мой взгляд просто объяснил, хотелось бы добавить, что если генерация eval происходит, через данные введеные пользователем, то можно ждать сюрпризов.
Я, например, если нужно, использую инфорацию введеную пользователем для инициализации своей переменной, при этом если допустимого варианта нет, то инициализурую ее по умолчанию. Этот вариант подходит для чисел, для строк нужно использовать регулярные выражения.
Если же eval использует не переменные введеные пользователем, а например, переменные с другой подключаемой веб-страницы, то сюрпризов быть не должно.
Насчет второго я не понял. Можно выводить и свойства объектов, только программист их и может использовать, как он напишет прогу, так она и будет все генерировать, при чем тут безопасность, зачем чего-то запрещать.
Ответ отправил: RedDevil (статус: 4-ый класс)
Отправлен: 31.01.2006, 08:02