0

メール機能のphpのマニュアルページに、「ヘッダーインジェクションに気をつけて」というユーザーコメントがありました。

私のアプリケーションでは、mail 関数を使用しています。この関数へのパラメーターとして使用するユーザー入力は、電子メール アドレスだけです。

正規表現を使用してメールアドレスの事前チェックを行います^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$

これはヘッダーインジェクションも防ぎますか?

ありがとう、
ジュニア

4

2 に答える 2

3

誰かが次のようなものを注入したいと思うでしょう:

user_address@domain.com
CC: spam_address1@domain.com、spam_address2@domain.com、spam_address3@domain.com

新しいヘッダー情報を定義するために必要な\r\nは許可しません。したがって、アプリケーションは安全です。

于 2010-01-07T07:58:18.917 に答える
0

ヘッダー インジェクションは、ユーザーが指定したものをメッセージ ヘッダー内に配置する場合にのみ危険です。典型的な例の 1 つは、投稿された電子メール アドレスを使用して Reply-To ヘッダーを設定することです。

これは私が使用するものです:

$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); 
于 2010-01-07T20:42:22.410 に答える