Что такое "разбор жадных токенов"? - PullRequest
6 голосов
/ 29 июля 2011

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

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

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

Ответы [ 2 ]

16 голосов
/ 30 июля 2011

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

5 голосов
/ 30 июля 2011

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

...