Что такое жадный анализ токенов?

Что такое жадный анализ токенов в PHP? Я читал руководство по кодированию PHP, в котором говорилось следующее...

"Всегда используйте строки в одинарных кавычках, если вам не нужен анализ переменных, а в случаях, когда вам действительно нужен анализ переменных, используйте фигурные скобки, чтобы предотвратить жадный анализ токенов. Вы также можете использовать строки в двойных кавычках, если строка содержит одиночные кавычки, поэтому вам не нужно использовать escape-символы».

Использует ли фигурные скобки вокруг моих переменных какой-то процесс безопасности, чтобы исключить взлом? (Например, {$var}) Жадный токен анализирует какую-то атаку, которую могут использовать хакеры, например, SQL-инъекцию или XSS (Cross Site Scriptiong).


person Jacob Haug    schedule 29.07.2011    source источник


Ответы (2)


Предположим, вы хотите, чтобы символ «а» следовал сразу за значением, содержащимся в переменной $var. Если вы напишете «$vara», это не сработает, потому что у вас нет переменной $vara. Синтаксический анализатор жадный — он предполагает, что все, что следует за $, должно быть включено, если его включение является допустимым синтаксисом. "${var}a" предотвращает это.

person Ted Hopp    schedule 29.07.2011
comment
ЛОЛ, это все. Громадное спасибо за объяснение! - person Jacob Haug; 30.07.2011

Жадный анализ токенов означает, что если последовательность символов включает более одного возможного токена, синтаксический анализатор примет токен с большим количеством символов. Если вы используете фигурные скобки, синтаксический анализатор остановится на фигурной скобке, так как она не является частью токена.

person Mark Cidade    schedule 29.07.2011