OSコマンドインジェクションの根本的な対策は、OSコマンドを呼び出せる関数・メソッドを使わないことです。それが困難な場合は、シェルの呼び出し機能がある関数を避けることで攻撃を防止できます。
- OSコマンドの呼び出しを避ける
開発言語ごとにOSコマンドを実行できる関数を把握し、それらを使用しない設計にすることで攻撃を原理的に防ぎます。 - シェル呼び出し機能のある関数の使用を避ける
機能要件でOSコマンドの呼び出しが必要な場合は、シェルを経由する関数を避けます。シェルには複数コマンドを実行する機能があるため、不正なコマンドを追加されると攻撃が成立する恐れがあります。シェルを介さない代替関数を使用することで、リスクを低減できます。
詳しい対策方法については、「OSコマンドインジェクションの対策」で解説しています。併せてご覧ください。
