سؤال

في صفحة دليل PHP لوظيفة البريد، كان هناك تعليق مستخدم يقول "احرص على منع حقن الرأس".

في طلبي، استخدم وظيفة البريد، وإدخال المستخدم الوحيد الذي أستخدمه كمعلمة إلى الوظيفة هو عنوان البريد الإلكتروني.

أقوم بفحص أولي لعنوان البريد الإلكتروني باستخدام Regex ^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$.

هل سيمنع هذا أيضا ضد حقن الرأس؟

شكرًا،
جاهة

هل كانت مفيدة؟

المحلول

شخص ما يريد حقن شيء مثل هذا:

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

أنت لا تسمح r n والتي هناك حاجة لتحديد معلومات رأس جديدة. لذلك تطبيقك آمن.

نصائح أخرى

يعتبر حقن الرأس مخاطرة فقط إذا وضعت الأشياء التي توفرها المستخدم داخل رؤوس الرسائل. مثال واحد Tipeal يستخدم عنوان البريد الإلكتروني المنشور لتعيين رأس الرد إلى الرأس.

هذا هو ما أستخدمه:

$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