• 1 رای - 4 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
خطر اطلاعات از طریق $_GET
#1
سلام

من تمام تایپیک های امنیتی این سایت رو خوندم ولی چیزی که میخواستم پیدا نکردم

میخواستم ببینم کسی هست مشکل منو حل کنه

از طریق $_GET یه سری اطلاعات رو میخوام بگیرم ولی خب یه چند جاهایی خیلی وقت پیشا خوندم که الان پیداش نکردم آدرسش رو که از این طریق دسترسی پیدا میکنن بخ کوئری هایی که اجرا مشه

ببینید
کد پی‌اچ‌پی:
$id $_GET['id'];

$query mysql_query("SELECT * FROM test WHERE id='$id ",$db); 
حالا
اولباً چطوری این کوئری رو دست میبرن توش و از اون طرق چطور میشه کاری کرد که تو هیچ شرایطی نشه تو کوئری ودستوران mydql_fetvh_assoc اون دست برد
چون بعد از کوئری بالا دستوران تو یه حلقه قرار میگیره و استخراج میشه برام

امیدوارم بتونین کمکم کنید من تو سایته ای انگلیسی هم سرچ کردم ولی زبانم زیاد قوی نبود و وقت ندارم ترجمه کنم چون زیاد وقتم رو میگیره برای همین امیدوارم شما آدرس به من معرفی نکنید و جوابم رو کامل بدید

از همگی پیشاپیش تشکر میکنم
با تشکر ممل آمریکایی
  پاسخ
تشکر شده توسط :
#2
خب اینجا برنامه حساب کرده که id$ حتما یک عدده که ممکنه نباشه
پس برای اطمینان کنتل کن که یک عدد باشه
کد پی‌اچ‌پی:
if(!is_int($id)) die('error'); 
یا اون رو به یک عدد تبدیل کن
کد پی‌اچ‌پی:
$id = (int) $_GET['id']; 
  پاسخ
تشکر شده توسط : HiddeN
#3
خب تشکر

به جز این مورد دیگه ای نبود؟

حالا بر فرض به جای این آی دی یک اسم باشه رشته - اون رو چیکار کنیم؟
با تشکر ممل آمریکایی
  پاسخ
تشکر شده توسط :
#4
http://php.net/manual/en/function.mysql-...string.php
  پاسخ
تشکر شده توسط : oia
#5
دستتون درد نکنه ولی من قبلاض عرض کردم

نقل قول:امیدوارم بتونین کمکم کنید من تو سایته ای انگلیسی هم سرچ کردم ولی زبانم زیاد قوی نبود و وقت ندارم ترجمه کنم چون زیاد وقتم رو میگیره برای همین امیدوارم شما آدرس به من معرفی نکنید و جوابم رو کامل بدید
با تشکر ممل آمریکایی
  پاسخ
تشکر شده توسط :
#6
برای‌ همه ورودی های اطلاعات باید چیزی که رضا حقیقی گفت رو رعایت کنی.
بهتره با انگلیسی کنار بیایین چون منوال انگلیسی هست و همیشه بهترین راهنماست
  پاسخ
تشکر شده توسط : oia
#7
کد پی‌اچ‌پی:
// Query
$query sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            
mysql_real_escape_string($user),
            
mysql_real_escape_string($password)); 
مثلا این کد انگلیسی دونستن می خواست؟ یا چقد وقت می گیره؟ Sleepy

اگه یکم حوصله بخرج بدی می بینی که با چیزه پیچیده ایی طرف نیستی! Cool
  پاسخ
تشکر شده توسط :
#8
امين جان من اينقدر هم گاگول نيستم اين رو خوندم ولي هر كاري كردم عملي نشد يا خوب مفهموم رو نفهميدم


کد پی‌اچ‌پی:
// Query
$query sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            
mysql_real_escape_string($user),
            
mysql_real_escape_string($password)); 

کد پی‌اچ‌پی:
'%s'  و mysql_real_escape_string($user),
            
mysql_real_escape_string($password 


با اون كدي كه من نمونه گذاشتم همخواني نداره اون يوزر و پسي كه گذاشته چي هستند؟ و اون %S متغير نيستند كه در ضمن تستش كردم ولي كار نكرد و هيچي نمايش نميده
با تشکر ممل آمریکایی
  پاسخ
تشکر شده توسط :
#9
http://ir.php.net/sprintf
Big Grin
  پاسخ
تشکر شده توسط : oia


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان