公開日:2013年3月21日
最終更新日:2020年8月13日
最終更新日:2020年8月13日
メールヘッダー・インジェクションと対策
メールヘッダー・インジェクションとは
メールヘッダー・インジェクションとは、問い合わせフォームなどのメールを送信する画面で、メールの内容を改ざんし、迷惑メールの送信などに悪用されてしまう脆弱性のことです。
メールの宛先に改行コードを挿入することで、新しいメールヘッダーを追加し、本来の宛先以外にメールを送信したり、メールの内容を改ざんしたりします。
メールヘッダー・インジェクションの対策
- メールヘッダーを固定値にして、メール本文のみ入力させる
- 実行環境や言語で用意されているメール送信用 API を使用する
■メールヘッダーを固定値にして、メール本文のみ入力させる
メールの宛先(To,Cc,Bcc)、件名(Subject)などのメールヘッダーを固定して、メールヘッダーに外部からの入力をさせないようにし、メール本文のみ入力できるようにします。
■実行環境や言語で用意されているメール送信用 API を使用する
メールヘッダーを固定できない場合は、実行環境や言語で用意されているメール送信用 API を使用するようにします。
悪い方法の例として、シェルで sendmail コマンドを使用する方法があります。この方法は、メールヘッダー・インジェクションだけでなく、OSコマンド・インジェクションの脆弱性も作りこんでしまう可能性があります。
- 入力値の全ての改行コードを削除する
■入力値の全ての改行コードを削除する
外部からの入力値の全ての改行コードを削除することで、メールヘッダーの改ざんを防ぐことができます。
但し、メール本文で改行の入力を許している場合は、改行が削除されてしまうことになります。
参考
Webアプリケーションセキュリティに関する記事は、以下のページにまとまっています。ぜひご確認ください。
スポンサーリンク
カテゴリー:Webアプリケーションセキュリティ対策
コメントを残す