امنیت ایمیل در در پی اچ پی و امنیت ایمیل در php و امنیت سایت php و آموزش امنیت در php و دستور form در php و اعتبار سنجی پسورد در php و اعتبار سنجی ایمیل با php و تایید ایمیل در php و اعتبار سنجی فرم در php در نم نمک.

امنیت ایمیل در PHP

در بخش ایجاد فرم ها در PHP آموزش دادیم که چگونه بررسی کنیم که کاربر فرمت ایمیل نوشته است یا خیر . حال در این درس میخواهیم بررسی کنیم که ایمیل نوشته شده اسپم هست یا یک کاربر واقعی است.امنیت ایمیل در پی اچ پی(PHP)امنیت ایمیل در پی اچ پی(PHP)

<html>

<body>

<?php

if(isset($_REQUEST['email']))

//if "email" is filled out، send email

{

//send 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

//if "email" is not filled out، display the form

{

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 تابع ایمیل داده های غیر مجاز وارد نماید. تصور کنید که کاربر تعداد زیادی ایمیل مانند زیر را در این بخش وارد نماید چه اتفاقی پیش می آید؟

someone@example.com%0ACc : person2@example.com

%0ABcc : person3@example.com،person3@example.com،

anotherperson4@example.com،person5@example.com

%0ABTo : person6@example.com

هر آنچه که تابع ایمیل میخواهد برای کابر بفرستند در header ذخیره شده و برای تمام ایمیل های فرستاده میشود و از نظر وب مستر دارای ایراد است و امنیت ایمیل در PHP و باعث ایجاد اختلال در برنامه میشود.

جلوگیری از حملات به ایمیل در PHP

برای جلوگیری این حملات اسکریپتی به ایمیل در PHP به معتبر بودن داده ها را بررسی میکنیم.

برای افزایش امنیت ایمیل در PHP به کد قبل دو تابع اضافه کردیم. یک تابع بررسی میکند و تعداد ایمیل ها اگر زیاد باشد آن ها را پاک میکند دیگری معتبر بودن ان را بررسی میکند. در صورتی که این شرایط برقرار نباشد به کاربر پیغام ایمیل معتبر را وارد نمایید را نشان میدهد در غیر این صورت اطلاعات ایمیل را ذخیره کرده و ایمیلی با پیغام نوشته شده در message به کاربر ارسال میشود.

  • تابع ( ) FILTER_SANITIZE_EMAIL : اگر بیش از یک ایمیل نوشته شده باشد ، ایمیل ها را پاک میکند.
  • تابع ( ) FILTER_VALIDATE_EMAIL : معتبر بودن ایمیل ها را بررسی میکند.
<html>

<body>

<?php

functionspamcheck($field)

{

//filter_var() sanitizes the e-mail

//address using FILTER_SANITIZE_EMAIL

$field=filter_var($field،FILTER_SANITIZE_EMAIL);

//filter_var() validates the e-mail

//address using FILTER_VALIDATE_EMAIL

if(filter_var($field،FILTER_VALIDATE_EMAIL))

{

returnTRUE;

}

else

{

returnFALSE;

}

}

if(isset($_REQUEST['email']))

{//if "email" is filled out، proceed

//check if the email address is invalid

$mailcheck=spamcheck($_REQUEST['email']);

if($mailcheck==FALSE)

{

echo"Invalid input";

}

else

{//send 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

{//if "email" is not filled out، display the form

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>

این مطلب مفید بود؟
(1 رای)
100%

نوشتن نظرات

توجه : نظرات حاوی الفاظ نامناسب ، تهمت و افترا منتشر نخواهد شد.


تصویر امنیتی

کاربران آنلاین : 18,431