目次
警告が発生する場所
以下の処理などで警告が発生する場合があります。
※「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のタイプですよと明示的に記載しています。