【问题标题】:What is "Greedy Token Parsing"?什么是“贪婪令牌解析”?
【发布时间】:2011-10-16 05:49:42
【问题描述】:

什么是 PHP 中的贪婪令牌解析?我正在阅读一份 PHP 编码指南,其中包含以下内容...

“除非您需要解析变量,否则请始终使用单引号字符串,并且在确实需要解析变量的情况下,使用大括号来防止贪婪的令牌解析。如果您也可以使用双引号字符串,如果字符串包含单引号,因此您不必使用转义字符。"

这是否在我的变量周围使用花括号某种安全过程来排除黑客攻击? (例如 {$var})贪婪令牌解析黑客可以使用的某种攻击,例如 SQL 注入或 XSS(跨站点脚本

【问题讨论】:

    标签: php parsing token greedy


    【解决方案1】:

    假设您希望字符“a”紧跟在变量$var 中包含的值之后。如果你写“$vara”,那是行不通的,因为你没有变量$vara。解析器是贪婪的——它假定$ 之后的所有内容都应该包括在内,如果包含它是合法的语法。 "${var}a" 可以防止这种情况发生。

    【讨论】:

    • 大声笑,仅此而已。非常感谢您的解释!
    【解决方案2】:

    贪婪令牌解析意味着如果一个字符序列包含多个可能的令牌,解析器将接受具有大多数个字符的令牌。如果使用大括号,解析器将在大括号处停止,因为它不是令牌的一部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-07
      • 2011-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多