重症度レベル:警告
デフォルト状態:常に有効
Description
このルールは Invoke-Expression コマンドの使用を検出し、スクリプトやアプリケーションにセキュリティリスクをもたらします。
Invoke-Expressionコマンドを使う際は注意が必要です。 指定された文字列を実行し、その結果を返します。
コードインジェクションの脆弱性は、文字列として渡される式にユーザー提供のデータが含まれている場合に起こり、アプリケーションが悪意ある攻撃にさらされやすくなります。 可能な限り Invoke-Expression の使用は避けてください。
例
非準拠
Invoke-Expression 'Get-Process'
対応
Get-Process
ルールの設定
このルールは常に有効で、設定はできません。 このルールを避けるために、以下のいずれかの方法を用いてください。
- 欲しいルールだけを含めるか、不要なルールを除外するカスタムルール設定ファイルを作成しましょう。
- 特定のコードブロックに対してルール抑制を抑制するために、適切なルール抑制属性をコードに追加してください。 詳細については、PSScriptAnalyzerの使用に関する「抑制ルール」セクションをご覧ください。