このコードを悪用することは可能ですか?
eval ("\$RequestVariables = \$_REQUEST;");
または
eval ("\$ServerVariables = \$_SERVER;");
$_REQUEST
または$_SERVER
は配列ではなく、それが文字列またはintの場合、悪用することが可能でしたが、この場合は配列です。このコードを悪用することはまだ可能ですか?
いいえ、それは悪用可能ではありません。
eval()
に渡す文字列内のすべての変数は_\
_エスケープされているため、展開されません。これは、常に文字通り評価していることを意味します...
_$RequestVariables = $_REQUEST;
_
...これは通常の割り当てであり、独自のコードを挿入することはできません。
_
\
_エスケープされていない場合はどうなりますか?
その場合、_$_REQUEST
_と_$_SERVER
_は配列であることが保証されており、配列の文字列表現は常にArray
であり、含まれている値を表示しないため、まだ運が悪い。