/ در آموزش پی اچ پی, آموزش ها, اشتراک رایگان / توسط
آخرین زمان ویرایش:

آموزش PHP (پی اچ پی) – قسمت سی و یکم

(جهت دانلود و اطلاعات بیشتر به ادامه مطلب مراجعه نمائید)

آموزش PHP – امنیت در ایمیل

امنیت در کد ارسال ایمیل

یک ضعف در اسکریپت e-mail فصل قبل وجود دارد. ابتدا، به کد آن نگاهی می اندازیم:

<html>
<body>

<?php
//اگر تکست باکس ایمیل پرشده باشد،ایمیل ارسال می شود
if (isset($_REQUEST[’email’]))
{
//ارسال ایمیل
$email = $_REQUEST[’email’] ;
$subject = $_REQUEST[‘subject’] ;
$message = $_REQUEST[‘message’] ;
mail(“someone@example.com”, “Subject: $subject”,
$message, “From: $email” );
echo “Thank you for using our mail form”;
}
else
//اگر تکست باکس ایمیل پرنشده باشد، فرم ارسال، نمایش داده می شود
{
echo “<form method=’post’ action=’mailform.php’>
Email: <input name=’email’ type=’text’ /><br />
Subject: <input name=’subject’ type=’text’ /><br />
Message:<br />
<textarea name=’message’ rows=’15’ cols=’40’>
</textarea><br />
<input type=’submit’ />
</form>”;
}
?>

</body>
</html>

 مشکل کد بالا این است که کاربران غیرمجاز می توانند از طریق فرم ورودی، درون header نامه، داده درج کنند.

توضیح بیشتر: چه اتفاقی خواهد افتاد اگر کاربر متن زیر را در فیلد ورودی email در فرم اضافه کند؟

someone@example.com%0ACc:person2@example.com
%۰ABcc:person3@example.com,person3@example.com,
anotherperson4@example.com,person5@example.com
%۰ABTo:person6@example.com

 تابع ()mail طبق معمول متن بالا را درون header نامه قرار می دهد و اکنون header فیلدهای اضافی cc و Bcc و to را دارد. وقتی که کاربر بر روی دکمه submit کلیک می کند ٫email به تمام آدرس های بالا ارسال خواهد شد!

 متوقف کردن تزریقات E-mail در php

بهترین راه برای متوقف کردن تزریقات email، معتبر کردن ورودی است.

کد زیر مانند کد فصل قبل است٫ اما حالا ما یک معتبرساز وروردی که فیلد email را در فرم چک می کند اضافه کرده ایم:

<html>
<body>
<?php
function spamcheck($field)
{
$field=filter_var($field, FILTER_SANITIZE_EMAIL);
if(filter_var($field, FILTER_VALIDATE_EMAIL))
{
return TRUE;
}
else
{
return FALSE;
}
}
//اگر تکست باکس ایمیل پرشده باشد،ایمیل ارسال می شود
if (isset($_REQUEST[’email’]))
{
//چک می کنیم که آدرس ایمیل معتبر است یا نه
$mailcheck = spamcheck($_REQUEST[’email’]);
if ($mailcheck==FALSE)
{
echo “Invalid input”;
}
else
//ارسال ایمیل
{
$email = $_REQUEST[’email’] ;
$subject = $_REQUEST[‘subject’] ;
$message = $_REQUEST[‘message’] ;
mail(“someone@example.com”, “Subject: $subject”,
$message, “From: $email” );
echo “Thank you for using our mail form”;
}
}
else
//اگر تکست باکس ایمیل پرنشده باشد، فرم ارسال، نمایش داده می شود
{
echo “<form method=’post’ action=’mailform.php’>
Email: <input name=’email’ type=’text’ /><br />
Subject: <input name=’subject’ type=’text’ /><br />
Message:<br />
<textarea name=’message’ rows=’15’ cols=’40’>
</textarea><br />
<input type=’submit’ />
</form>”;
}
?>

</body>
</html>

 

در کد بالا ما از فیلترهای php زیر، برای معتبرسازی ورودی استفاده کرده ایم:
فیلتر FILTER_SANITIZE_EMAIL: تمام کاراکترهای غیرمجاز ایمیل را از رشته حذف می کند.
فیلتر FILTER_VALIDATE_EMAIL: آدرس ایمیل را معتبر می کند.

نوشته های مشابه

دانلود سورس نرم افزار جامع دبیرخانه ۸۹

(جهت دانلود و اطلاعات بیشتر به ادامه مطلب مراجعه نمائید) (بیشتر…)

آموزش PHP (پی اچ پی) – قسمت سی و دوم

(جهت دانلود و اطلاعات بیشتر به ادامه مطلب مراجعه نمائید) (بیشتر…)

 کانال تلگرام داده باران شارژ آنلاین

نظری بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *