質問

メール機能のための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); 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top