mostafa_dadgar
Member
دمتون گرم ايناكه روشهاي هك كردنه خيلي باش حالكرديم البته اينم بگما خيلي بدرد ضد هك هم ميخوره جالبه كه تا حالا اصلا بشون توجه نميكرديم
دم همگيتون گرم
دم همگيتون گرم
ariyahost گفت:يه راه خوب :
اگر شما يه كاري مثل اين بكنيد :
SELECT * FROM `pws_users` WHERE 1 AND `user_userpass` = md5('test'); AND ...
منظورم اينه كه اين رو اجرا كنيد.اونوقت چطور ؟
Warning: main(includes/asfunc.php): failed to open stream: No such file or directory in /home/esteghla/public_html/mainfile2.php on line 2
oxygenws گفت:omidak گفت:سلام:
راهي كه PHPBB در نظر گرفته برایه مقابله با SQL Injection اینه که میاد هرچی ' هست به : /'
تبدیل میکن
یعنی:
این کار جلویه هر Injection ای رو میگیره.کد:'Select * From Users Where Username ="' . str_replace("\\'", "''", $username) . '"...'
اما بهترین راه استفاده از Parameter ها هست که دیگه دیگه هیچ دسترسی وجود نداره.
امیدک جان، این کار جلوی هر تزریقی رو نمی گیره....
اون کاری که phpbb کرده به شرطی جلوی تزریق رو می گیره که کسی که کد می زنه بفهمه که چطوری داره کد می زنه!!! منظورم اینه که اون دستور به شرطی درست کار می کنه که طرف تمامی توابع mysql_query اش رو با ' درست کرده باشه!! در حالی که خود من بسته به نیازم و مکان خاص توی کد هام یا ممکنه از ' استفاده کنم یا "
مهم اینه که اون توابعی که من گفتم، جلوی تمامی تزریق های سیکویل رو می گیره، مهم نیست طرف نویسنده اش کی باشه
موفق باشید، امید
Majid گفت:
علاوه بر اين بهتر است که هميشه تمام error ها را نمايش دهيم.
کد:error_reporting(E_ALL);
بدين صورت هر گاه شما متغيري را صدا کنيد که از قبل تعريف نشده پيغام خطايي دريافت خواهيد کرد.
مجيد
Majid گفت:روش: Cookie و SESSION به جاي متغير
راه حل دوم اين است که username و password را در cookie بريزيم و هر دفعه با بررسي آن از تطابق آن با پسورد اصلي مطمئن شويم. همچنين با مقايسه آن مي توانيم تعيين کنيم که آيا کاربر admin است يا يک کاربر معمولي. با استفاده از دو تابع اين کار ميسر است. يکي آنکه صحت username و password وارد شده را تشخيص دهد و ديگري آنکه تعيين کند آيا اين داده ها مربوط به admin هستند يا کاربر.
فرض کنيد اين دو تابع را validate_login و is_admin بناميم. بنابراين :
کد:if (!validate_login($_COOKIE['username'], $_COOKIE['password'] ) ) { echo "Sorry, invalid login"; exit; } // اطلاعات کاربر صحيح است ، ادامه برنامه if (!is_admin($_COOKIE['username'] )) { echo "Sorry, you do not have access to this section"; exit; }
( من به خاطر کارآيي بيشتر session به شخصه راه حل اول را توصيه مي کنم )
مجيد
البته session ذاتا از کوکی استفاده می کنه و لازم نیست دوباره SID رو توی کوکی ذخیره کنید.بهترين حالت تركيبي از SESSION و COOKIE است به اينصورت كه پس از ايجاد سشن SID را در COOKIE و ديتابيس ذخيره كنيد
نگاه کن، فرض کن php با آپاچی اجرا می شه.... اگر آپاچی مشکل امنیتی داشته باشه، این امکان هست که cracker ها بتونند محتویات فایل php رو ببینند. یا اینکه مثلا کرکر بیاد سرور رو کرک کنه یا ... ولی به طور معمول و بدون هیچ حفره ای یک کرکر نمی تونه محتویات فایل php رو ببینه.میخواستم بدونم اصلا راهی برای دیدن سورس PHPصفحات وجود داره؟