我正在尝试整理 XSS 安全字符串插值方案的概念证明。
给定一个带有替换的字符串,
"Hello <b>$planetoid</b>!"
我想把它分解成文字部分和替换("Hello<b>" planetoid "</b>!")
,然后在文字部分上从左到右运行一个状态机。当我达到一个插值(planetoid
在上面)时,我需要能够从状态到一个适当的转义函数。
有谁知道如何使用 lex/yacc/bison 派生状态机并能够将语法中的标签与输出状态相关联的任何示例?我想派生一个我可以在 javascript 中使用的状态机,并尝试替换 PHP 的底层字符串实现。
这里描述了我这样做的原因。
干杯,迈克