web-dev-qa-db-ja.com

PHPアサートコードインジェクション

この場合、$ entityIdに悪意のあるコードを挿入することが可能で、それがphpによって処理されるかどうかは不明です。

$entityId = $_GET["name"];

public function getMetaData($entityId) {
   assert('is_string($entityId)');
}

文字列をアサーションとして使用することは、PHP 7.2。

PHPアサート

2
Raphaël D

assert関数は、1つの静的パラメーター、文字列is_string($entityId)で呼び出されます。

単一引用符の使用のおかげで、$entityIdは補間されないため、攻撃者はPHPコードを実行できません。

4
Benoit Esnard