PHP逆引き大全 516の極意

セキュアプログラミングの極意 - Tips467 メール送信の危険性と対策を理解する

登録タグ
PHP
Icon comment count 0
Icon stock count 0

7-8その他のセキュリティTips467 メール送信の危険性と対策を理解する

Level2

Point外部からの入力値を使用したメール送信処理に潜む脆弱性に注意する

PHPのmail関数、mb_send_mail関数では、第4引数にメールヘッダーを追加することができます。mb_send_mail関数の書式を以下に記します。

この第4引数の指定は任意ですが、PHPのマニュアルに記載されている通り、「改行("\n")で区切ることにより複数のヘッダーを指定可能」です。例えば下記のコードを見てください。

$header = "From: {$_POST['from']}\n"
mb_send_mail( "admin@website.example.com", $subject, $message, $header );

第4引数$headerでは、メールヘッダー中のFromを外部入力値を元に組み立てています。この時、悪意のあるユーザが$_POST['from']として、以下を入力したとします。

foo@spam.example.com\nBcc:bar@victim.example.com\n

こうすることで、メールヘッダーは以下のようになります(説明に必要な部分のみ抜粋します)。

To: 

出典情報

Medium

PHP逆引き大全 516の極意

  • 著者: 大家 正登, 茂木 健一, 鮫島 康浩, 谷中 志織

コメント

    コメントはありません