• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
کدوم یکی از این کدها امن تره ؟
#1
سلام خدمت دوستان عزیز:
عید رو به همه دوستان تبریک میگم.
من دو تا کد برای ورود به admin دارم که نمیدونم کدومش بهتره. هر دو درست کار میکنند و تفاوت در زمان hash کردن pass است , به این صورت که اولی در خود query و دیگری بعد از اجرای query کار hash کردن و مقایسه رو انجام میده.
ببخشید که بهتر از این نشد بگم.اگه کسی کد کاملتر داره ممنون میشم راهنماییم کنه.

کد اول :
کد پی‌اچ‌پی:
$User $_POST['UserName'];
$Pass $_POST['Password'];
//Hashing the password in query
$sql "SELECT * FROM `admin` WHERE `user` = '".$User."' AND `pass`='".md5($Pass)."'";
$Result mysql_query($sql);
//Checking...
if(mysql_num_rows($Result)==1) {
     
header("Location: admin.php"); 

کد دوم : (کوئری این کد رو از دوستان گرفتم اما حقیقتش دقیقا نمیدونم عبارات CONVERT و USING چه کار خاصی انجام میدن و چه لزومی دارن).

کد پی‌اچ‌پی:
$sql="SELECT * FROM `admin` WHERE `user` = CONVERT( _utf8 '".$_POST['user']."'USING latin1 )";
$Result=mysql_query($sql);
$row=mysql_fetch_assoc($Result);
//Hashing the password and check
if ( ($_POST['user'] == $row['user']) && (md5($_POST['pass']) == $row['pass']) )
     
header("Location: admin.php"); 
کار من این است که کاریم نیست,عاشقم از عشق تو عاریم نیست
تا که مرا شیر غمت صید کرد,جز که همین شیر شکاریم نیست
باده ات از کوه سکونت بَرَد,عیب مکن زان که وقاریم نیست
مولانا جلال الدین محمد
  پاسخ
تشکر شده توسط :
#2
با سلام هر دو کد نا امن هستند من فقط کدی که نوشتید رو اصلاح کردم اما هنوز در مورد حملات DOS و XSS آسیب پذیر است برای پر کردن ضعف امنیتی در مقابل DOS از CAPTCHA و برای رفع آسیب پذیری در مقابل XSS از یک کلید در فرم فیلد Hidden استفاده کنید برای توضیحات بیشتر در انجمن جستجو کنید یا از گوگل استفاده کنید

کد پی‌اچ‌پی:
$args = array(
    
'UserName' => array('filter'    => FILTER_SANITIZE_STRING,
                        
'flags'     => array(FILTER_FLAG_STRIP_LOW,FILTER_FLAG_STRIP_HIGH),
    ),
    
'Password'   => array('filter' => FILTER_SANITIZE_STRING,
                          
'flags'  => array(FILTER_FLAG_STRIP_LOW,FILTER_FLAG_STRIP_HIGH),
    ),
);

$userInputs filter_input_array(INPUT_POST$args);
$hashKey '[email protected]';
//Hashing the password in query
$sql 'SELECT * FROM `admin` WHERE `user` = \''.$userInputs['UserName'].'\'';
$Result mysql_query($sql);
$row=mysql_fetch_assoc($Result);
//Checking...
if ( ($userInputs['UserName'] == $row['user']) && (md5($userInputs['Password'].$hashKey) == $row['pass']) )
     
header("Location: admin.php"); 

  پاسخ
#3
با تشکر از شما دوست عزیز
(برای تمرکز روی موضوع بعضی از کدها مثل CAPTCHA رو حذف کردم) اما در مورد حملات XSS همونطور که فرمودید search کردم که در پست "تابعی برای ایمن سازی" گفته شده که با قرار دادن کدی بالای هر صفحه از این حملات جلوگیری میشه.همچنین پست "اضافه کردن به آدرس سایت".
حالا سوالم اینه که با قرار دادن این کد دیگه مشکل XSS حل میشه ؟

دو تا سوال هم در مورد کدتون دارم :
ظاهرا جوابهاشون بدیهین ولی چون میخوام دقیقا کار کرد کد رو بدونم , میپرسم.
1_ تا اونجا که فهمیدم username و password در خط 8 دریافت و فیلتر میشن.بهتر نیست این الگو رو تو همه فرمها بکار ببریم ؟

2_ مقدار pass در دیتابیس هم باید بصورت hash شده با $hashKey ذخیره شده باشه دیگه ؟

در ضمن Homepage تون خیلی جالب بود.
کار من این است که کاریم نیست,عاشقم از عشق تو عاریم نیست
تا که مرا شیر غمت صید کرد,جز که همین شیر شکاریم نیست
باده ات از کوه سکونت بَرَد,عیب مکن زان که وقاریم نیست
مولانا جلال الدین محمد
  پاسخ
تشکر شده توسط : cyletech
#4
(۱۳۹۰ فروردین ۱۱, ۰۳:۱۰ ق.ظ)molana_rumy نوشته: با تشکر از شما دوست عزیز
(برای تمرکز روی موضوع بعضی از کدها مثل CAPTCHA رو حذف کردم) اما در مورد حملات XSS همونطور که فرمودید search کردم که در پست "تابعی برای ایمن سازی" گفته شده که با قرار دادن کدی بالای هر صفحه از این حملات جلوگیری میشه.همچنین پست "اضافه کردن به آدرس سایت".
حالا سوالم اینه که با قرار دادن این کد دیگه مشکل XSS حل میشه ؟

دو تا سوال هم در مورد کدتون دارم :
ظاهرا جوابهاشون بدیهین ولی چون میخوام دقیقا کار کرد کد رو بدونم , میپرسم.
1_ تا اونجا که فهمیدم username و password در خط 8 دریافت و فیلتر میشن.بهتر نیست این الگو رو تو همه فرمها بکار ببریم ؟

2_ مقدار pass در دیتابیس هم باید بصورت hash شده با $hashKey ذخیره شده باشه دیگه ؟

در ضمن Homepage تون خیلی جالب بود.
با توجه به اینکه یوشا از من خوشش نمیاد بهتره پاسخ اون پست رو خود عزیزش بیاد بده اما در مورد کراس سایت اسکریپتینگ کافیست تا همونطور که گفته شد یک رشته داخل فرم فیلدتون بصورت هاید قرار بدین تا پست بشه و از ارسال شدن اطلاعات از طریق وب سایت خودتون اطمینان حاصل کنید
در مورد سوال اولتون بله شما هیچ وقت هیچ وقت هیچ وقت نباید به کاربر و هر آنچه از بیرون میاد اعتماد کنید لذا فیلتر کردن ورودی امری حیاتی ضروری و اوجب واجباته
در مورد سوال دوم خب بعله دیگه Wink
  پاسخ
تشکر شده توسط :
#5
نقل قول:با توجه به اینکه یوشا از من خوشش نمیاد بهتره پاسخ اون پست رو خود عزیزش بیاد بده
حالا اگه شما تایید میکردینم قبول میکردیم.بهرحال ممنون.

نقل قول:در مورد کراس سایت اسکریپتینگ کافیست تا همونطور که گفته شد یک رشته داخل فرم فیلدتون بصورت هاید قرار بدین تا پست بشه و از ارسال شدن اطلاعات از طریق وب سایت خودتون اطمینان حاصل کنید
یعنی یه رشته خاص بفرستم و عین همون رو در سرور دریافت کنم ,نظرتون راجع به استفاده از کد زیر و بررسی اون در سرور چیه؟ میتونم این کد رو هم اعمال کنم یا لازم نیست؟

کد پی‌اچ‌پی:
$ClientString $_SERVER['HTTP_USER_AGENT'] .$_SERVER['REMOTE_ADDR'];
$_SESSION['ClientStr'] = md5($ClientString); 
CAPTCHA هم که جای خودشو داره.
کار من این است که کاریم نیست,عاشقم از عشق تو عاریم نیست
تا که مرا شیر غمت صید کرد,جز که همین شیر شکاریم نیست
باده ات از کوه سکونت بَرَد,عیب مکن زان که وقاریم نیست
مولانا جلال الدین محمد
  پاسخ
تشکر شده توسط :
#6
کد مذکور باید یونیک و رندم باشه اینکه خودش ده تا مشکل داره
سشن هندل شده یا نه؟
یوزر ایجنت و آی پی ادرس که دست خود هکر هم هست خوب اینارو هم خودش تولید می کنه فدات شم بهتره یکبار بری xss رو کامل بخونی متوجه می شی وظیفه اون کد که می گم چیه
http://en.wikipedia.org/wiki/Cross-site_scripting
http://ha.ckers.org/xss.html

و بعدش هم

http://www.owasp.org/index.php/PHP_Top_5..._scripting
  پاسخ
تشکر شده توسط : Goback
#7
ممنون از راهنماییتون
راستش من تازه کارم. هر چی یاد میگیرم تازه میبینم چقدر چیز دیگم هست که باید یاد بگیرم.
نقل قول:سشن هندل شده یا نه؟

بی زحمت اگه در این مورد هم لینکی دارین بدین تا برم یاد بگیرم.

در مورد xss هم اگه بازم مشکلی داشتم ازتون راهنمایی میگیرم

ممنون
کار من این است که کاریم نیست,عاشقم از عشق تو عاریم نیست
تا که مرا شیر غمت صید کرد,جز که همین شیر شکاریم نیست
باده ات از کوه سکونت بَرَد,عیب مکن زان که وقاریم نیست
مولانا جلال الدین محمد
  پاسخ
تشکر شده توسط :
#8
اگر نگران چیزهایی هستی که نمی دونی
اگر فکر می کنی یه روزی بی نیازی از چیزهایی که باید یاد بگیری یا فکر می کنی از انجام این کا خسته میشی
بهتره همین الان بری سراغ یک کار دیگه
البته نه اینکه معنی حرفت عزیزم اینها باشه فقط خواستم بدونی که تو راهی قدم گذاشتی که تا به حال کسی انتهاش رو ندیده!
در مورد سشن هندل خودت جستجو کن گوگل کمکت می کنه!
اگه سوالی داشتی بپرس تا بچه های خوبه اینجا پاسخگو باشن من ممکنه تا ۶۰ ماه دیگه باز نیام اینجا همینجوری گذری رد می شدم که سوالتو دیدم معمولاً کم فرصت می شه بیام این انجمن‌ها
همین نکته که بر روی شیر هاست‌ها به دلیل اینکه مکان ذخیره سازی تمام هاست ها یک جاست امکان استفاده از سشن های شما برای دیگر هاست ها نیز وجود داره بدین ترتیب باید سشن رو در دیتابیس ذخیره کنی تا از سو استفاده های احتمالی جلوگیری کرده باشی
  پاسخ
تشکر شده توسط : Goback molana


پرش به انجمن:


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