PHPメールヘッダインジェクション防止
-
19-09-2019 - |
質問
メール機能のためのPHPのマニュアルページで、「ヘッダインジェクションを防ぐために世話をする」というユーザーのコメントがありました。
私のアプリケーションでは、私は、メール機能を使用して、私は関数のパラメータとして使用するだけのユーザ入力は、電子メールアドレスです。
私は正規表現^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$
を使用して電子メールアドレスの事前チェックを行います。
これはまた、ヘッダインジェクションに対して防ぐのでしょうか?
おかげで、
JRH
解決
誰かがこのような何かを注入するとよいでしょう。
user_address@domain.com
CC:spam_address1@domain.com、spam_address2@domain.com、spam_address3@domain.com
あなたは新しいヘッダ情報を定義するために必要とされるの \ R \ nはを許可していません。だからあなたのアプリケーションが安全です。
他のヒント
ヘッダ・インジェクションを使用すると、メッセージのヘッダー内のユーザー提供のものを入れた場合にのみ危険です。一のtipical例は、返信にヘッダを設定する投稿メールアドレスを使用しています。
これは私が使用するものです。
$email = preg_replace(array("/\r/i","/\n/i", "/%0a/i", "/%0d/i", "/Content-Type:/i", "/bcc:/i", "/to:/i", "/cc:/i", "/Content\-Transfer\-Encoding\:/i", "/Mime\-Version\:/i" ), "", $email);
所属していません StackOverflow