سلام
داشتم یه برنامه چک میکردم
متوجه شدم mysql_real_escape_string به تنهایی نمیتونه جلوی این حمله رو بگیره
بهتره که stripslashes استفاده بشه و همچنین ورودی ها فیلتر بشن
مثلا اگه محتوا عددی هست بهتره از این استفاده کرد :
if (is_numeric($id))
بعدش ادامه کارو رفت
حالا من سوال دارم
1- از stripslashes و mysql_real_escape_string استفاده بشه ؟
2- برای اعداد این کد رو میزنم اول :
$sid=preg_replace('#[^0-9]#i','',$_GET['id']);
3- برای اعداد و حروف انگلیسی :
$sid=preg_replace('#[^A-Z-a-z-0-9]#i','',$_GET['id']);
4- برای اعداد و حروف انگلیسی و حروف فارسی :
$sid=preg_replace('#[^A-Z-a-z-0-9\ا\ب\پ\ت\ث\ج\چ\ح\خ\د\ذ\ر\ز\ژ\س\ش\ ص\ض\ط\ظ\ع\غ\ف\ق\ک\گ\ل\م\ن\و\ه\ی\ك \آ\ي\ئ]#i','',$_GET['id']);
اگه مورد 2 استفاده بشه و تمام ورودی ها فقط عدد بشن ، آیا نیاز به مورد 1 هست ؟
مورد 4 از نظر منطقی صحیح هست ؟
ممنون