> Не надо мне всякие сомнительные ссылки подсовывать, если сами свои мысли сформулировать
> не можете. Кроме того, сайты сообщества PHP я за кладезь Ъ-знаний
> по программированию не считаю.
>> По-моему, очевидно, что в этом случае подставленная строка выполняется точно так же, как и её контекст.
> Вообще какой-то набор слов из желания казаться.
> Что такое контекст строки? И как же выполняется ее контекст?Это была первая попавшаяся ссылка из гугла. Содержание соответствовало моим фундаментальным представлениям, потому посчитал инфу оттуда достаточно достоверной в первом приближениии и сослался. Я по-моему на русском языке излагаю: контекст для евала в данном случае - сам пхп-скрипт, если не понятно. параметр евала вставляется в этот контекст. По ссылке,что я дал, все понятно разъяснено.
> Кроме того речь зашла о том, что eval якобы "опасная штука". Может
> быть его реализация в PHP действительно какая-то угробищная. Только при чем
> здесь PHP, если речь шла об eval вообще.
Ну так в том же яваскрипте точно примерно так же в теории, суть в том, что можно выполнить произвольный левый код.
> Можно и так, только зачем сразу так грубо. Это все спокойно делается
> на высоком уровне в современных языках. Вы этого тоже не знаете.
Если функции на момент выполнения не было, логично что её нужно создать. Вы знаете способ выполнить её локально, не помещая в память?
> По крайней мере вы подтвердили, что можно, тогда при чем здесь "опасность
> eval"?
Ни при чём, в том то и отличие. Если вам не взбредёт в голову в качестве параметра загружать какую-нибудь длл (тот же плагин для браузера, к примеру), проблем с безопасным выполнением кода не будет - в отличие от евал.
>> RPC - это remote call, выполняется он на другом хосте и, как правило, после авторизации
> Купились на слово remote? Нет, это как раз то, что вы описали
> - из другого процесса. Хотя он может и на другом хосте
> быть, пожалуйста, но не обязательно.
> Не знаете предмет. Википедию для начала прочтите, что ли. Если ни одну
> книжку не открывали.
Важно, что косвенно через систему в другой процесс.
Это из википедии, и из того, что помню про java-RMI. А вы знаете предмет иначе?
>> Дыра в безопасности как раз в случае подстановок в строку евала внешних данных, как всегда.
> Что значит как всегда? Может у вас действительно так всегда.
> А если в eval подставляются не внешние данные? Ну в чем опасность
> именно самого eval? Ну не передавайте ему "внешние данные" без проверки.
> Или вообще внешних данных не передавайте ему. При чем здесь сам
> eval, как "опасная штука" по умолчанию?
Именно для обработки внешних данных имеет смысл использовать евал. Если данные внутренние, зачем от них делать евал, когда своим готовым кодом можно обработать.