PDA

View Full Version : سوال: امن تر کردن تصویر امنیتی



ravand
پنج شنبه 20 آبان 1389, 19:49 عصر
من یه فرم ساختم و قصدم این هست که تصویر امنیتی اون رو با امنیت بالاتری بسازم طوری که کسی نتونه فرم رو دور بزنه .
مثلا من کد هایی که تصویر امنیتی رو چک می کنند بردم سمت سرور و صفحه ی دوم جایی که اطلاعات برای دیتابیس ارسال میشه.و گذاشتم بالای همه ی کد های دیگه . که اول چک کنه ببینه آیا تصویر امنیتی پر شده یا نه؟ اگه پر شده که بقیه ی کد ها خونده بشه ، وگرنه که خارج بشه.
کد های زیر است :

<?php session_start() ?>
<?php
if(isset($_POST["captcha"]))
if($_SESSION["captcha"]==$_POST["captcha"])
{

echo("<script type='text/javascript'>alert('تصویر امنیتی درست تایپ شد')</script>");
}
else
{
echo("<script type='text/javascript'>alert('تصویر امنیتی را درست تایپ کنید')</script>");
exit;
}
?>

<?php
اینجا هم کدهای بقیه ی فیلد ها چون نام و نام خانوادگی و ... که برای سمت سرور ارسال میشه.
?>
این ها هم کد های سمت کلاینت که مخصوص تصویر امنیتی هست :

<tr>
<td bgcolor="#45CCE9"><div align="right"><span lang="en-us">&nbsp;</span>
<font color="#FF0000">*</font>
<img src="captcha.php" height="30" alt="captcha image">
<input type="text" name="captcha" id="captcha" size="3" maxlength="5" dir="ltr">
</div></td><td bgcolor="#45CCE9"><div align="right">:تصوير را پر كنيد </div></td>
</tr>
من به این نتیجه رسیدم که فرد می تونه این کد بالا رو در داخل فرم خودش قرار نده و به وسیله ی فرم دیگه ای که تصویر امنیتی در سمت کلاینت نداره راحت بدون اینکه تصویر امنیتی رو پر بکنه فرم رو ارسال بکنه چون این کد ها سمت کلاینت هست .
می خواستم ببینم راهی وجود داره که من مانع از این کار بشم؟
یه راهی به نظر خودم امد اینکه یه فیلد برای تصویر امنیتی بسازم و وقتی تصویر رو طرف پر می کنه برای دیتابیس ارسال کنه بعد یه اعتبارسنجی مثل کد زیر براش بسازم . نظرتون چیه؟
یا اگه راه بهتری میشناسید ممنون میشم راهنماییم کنید.

$captcha = $_REQUEST['captcha'];
if($captcha=="")
die(' تصویر امنیتی رو درست وارد نکردید ');
این کد میگه اگه این فیلد خالی باشه اجازه نمیده ارسال بشه. :لبخند: منتظر جوابتون هستم.

rapidpich
جمعه 21 آبان 1389, 12:44 عصر
لازم نیس کافیه if رو اینطوری کنی:


if(isset($_POST["captcha"]) && $_SESSION["captcha"]==$_POST["captcha"])