[highlight=#FF8040]روش: سو استفاده از ورودي كاربر [/highlight]
سطح: مبتدي
زبان: PHP
بانک اطلاعاتی: ---
حد خطر: کم
اين نا امني زماني پيش مياد كه ما ميخواييم يه ورودي براي كاربر در نظر بگيريم مثلا وبلاگهايي كه نظر كاربران رو بطور مستقيم نشون ميده
در اين حالت اگه هيچ بررسي اي روي ورودي كاربر انجام نشه هكر محترم ما ميتونه هر كد html و جاوايي رو كه دلش خواست به برنامه ما وارد كنه
براي مثال كد زير :
کد:
<form method="post" action="nazar.php" >
<input type="text" name="name">
<textarea name="nazarat" cols="60" rows="8"></textarea>
<input type="submit" name="login" value="ersal">
</form>
اين فرم هر چي كه كاربر وارد كنه به اسكريپت زير ميفرسته
کد:
<?php
if ($name and $nazarat){
echo "$name neveshte :<br>$nazarat";
}else{
echo"lotfan esme va nazare khod ra benvisid";
}
?>
اين اسكريپت هم هر چي كه كاربر وارد كرده باشه نمايش ميده حتي كدهاي html و جاوا
براي حل اين مشكل بايد از توابع php كه براي جلوگيري از اين كار هستش استفاده كنيد توابعي مثل :
گه ورودي شما فقط شامل اعداد ميشه مي تونيد با تابع زير صحتش رو چك كنيد
intval()
در نتيجه اسكريپت بالا رو اگه بشكل زير مينوشتيم مشكل حل مي شد
کد:
<?php
if ($name and $nazarat){
$name=htmlspecialchars($name);
$nazarat=htmlspecialchars($nazarat);
echo "$name neveshte :<br>$nazarat";
}else{
echo"lotfan esme va nazare khod ra benvisid";
}
?>
با اين كار ديگه هكر محترم نميتونه هيچ كد html ي وارد كنه ..