技術ブログ

プログラミング、IT関連の記事中心

Variable Assigned to Object Injection Sinkeslintsecurity/detect-object-injection

目次

警告が発生する場所

以下の処理などで警告が発生する場合があります。
※「obj[key]」の部分で警告になります。

const value = obj[key];

警告の意味

Variable Assigned to Object Injection Sinkeslintsecurity/detect-object-injection

上記のエラーは、ESLintの警告です。

「eslintsecurity/detect-object-injection」警告は、プロパティの名前が動的に生成される可能性がある場合に、オブジェクトインジェクション攻撃を検出するためのものです。
この警告は、オブジェクトのプロパティアクセス時に、直接変数から取得するのではなく、安全な方法でアクセスするように推奨するものです。

解消方法

大前提で、keyはobjのキーが保証されている場合の対処になります。
keyはobjのキー以外が入らない場合には以下のように解消することができます。

const value = obj[key as keyof typeof obj];

これは、keyはobjのkeyのタイプですよと明示的に記載しています。