鉴于声明
$someValue = eval("return \$$userSetting;");
$userSetting
怎么可能有危险?它看起来最糟糕的是暴露变量,但这实际上是它应该在这段代码中做的事情。有没有办法用PHP variable variables执行任意代码?
答案 0 :(得分:4)
您可以轻松地调用任意函数(更准确地说 - 任意表达式):
$userSetting = 'userSetting && print(123)';
这适用于所有(?)php版本。
使用php7,它变得更加方便,因为你可以就地调用匿名函数:
$userSetting = 'userSetting && (function() { do whatever you want })();';