• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
سوال در رابطه با محافظت از صفحات
#1
سلام دوستان توی php برای محافظت صفحات برای مثال قسمت ادمین یک cms باید چطوری این امنیت رو بر قرار کرد که فقط بعد از لاگین ادمین به صفحات بشه دسترسی داشته باشیم .

چیزی که من نوشتم ..اینه یه کلاس :


کد:
class  sentry{


function CheckLogin($username="",$password="",$googredirect="",$badridirect=""){
        
    $validate=new validator();
    $conector=new Conector();
    if($validate->validateUser($username,"..VALIDAT USERNAME..")){
        
        $_USERNAME=$username;
    }
    $_PASSWORD=$validate->password($password);
    
    
    if(@$_SESSION['user'] && @$_SESSION['pass']){
        
    $RESULT=$conector->Query("SELECT * FROM administrator WHERE username='".$_SESSION['user']."' AND password='".$_SESSION['pass']."' AND enable=1");
    
    if($RESULT){
        $validate->redirect($googredirect);
        }
        else{
            $validate->redirect($badridirect);
        }
        
    }    
    $conector->link;


    $RESULT=$conector->Query("SELECT * FROM administrator WHERE username='".$_USERNAME."' AND password='".$_PASSWORD."' AND enable=1");
    
    if($conector->NUM_ROWS($RESULT)>0){
        
        $conector->Query("UPDATE administrator SET datetime='".date("Y-m-d H:i:s")."' where username='".$_USERNAME."' ");
        
        $_SESSION['user']=$_USERNAME;
        $_SESSION['pass']=$_PASSWORD;
        
        $validate->redirect($googredirect);
        
    }else{
        
        $validate->redirect($badridirect);
        
    }    
        
    }
    
}

واسه استفاده هم :


کد:
$sentry->CheckLogin($HTTP_POST_VARS['usename'],$HTTP_POST_VARS['password'],"administrator.php","?error");


حالا برای محافظت توی صفحاتم ...توی سیستم وقتی پایین صفحات این کد رو میزارم همه چی درسته :


کد:
$sentry->CheckLogin($_SESSION['user'],$_SESSION['pass'],"","index.php")


ولی روی هاست که ریختمش .. مشکل داره مشکلشم اینه که صفحه استب نمیشه و هی به همین تابع درخاست میده ...

حالا شما توی پروژه هاتون از چه جور امنیتی استفاده میکنید ؟





دوستان کسی نمیدونه باید چیکار کنم ... جالبه تو Xamp درست کار میکنه ولی تو هاست نه
  پاسخ
تشکر شده توسط :
#2
نقل قول:چطوری این امنیت رو بر قرار کرد که فقط بعد از لاگین ادمین به صفحات بشه دسترسی داشته باشیم

بعد از بررسی لاگین، اگه لاگین درست انجام نشده بود یه header بزارید به صفحه لاگین و بعدشم دستور exit را بگذارید...
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط :
#3
یوزر و پسورد رو میریزی توی سشن؟؟؟ خوب سشنت سرقت بشه که ادمین بدبختت کارش تمومه!!!

نکن برادر من این چه کاریه؟
اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی دیگه در مورد آزادی شعار نده !
آلبر کامو
  پاسخ
تشکر شده توسط : hamid_80386
#4
پسورد رو md5 میکنم ..ولی به قول شما بازم امنیت نداره ..

یه کد رندم هم اگه بهش اضاف کنم به نظرتون مشکل حل میشه آیا..؟

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

مشکل رفرش رو حل کردم ..مال هدر بود وقتی درسته نباید دیرایرکتش میکردم به جای دیگه ..
  پاسخ
تشکر شده توسط :
#5
خب وقتی طرف لاگین میشه تو سشن یه متغیر تعریف کن مثلا:
کد پی‌اچ‌پی:
$_session['isAdmin']= true 
اون موقع اول همه ی صفحات مربوط به ادمین چک کن ببین این متغیر وجود داره یا نه.اگه نبود:
نقل قول:یه header بزارید به صفحه لاگین و بعدشم دستور exit را بگذارید...
رمضان خونین غزه
برای پیروزی مردم غزه دعا کنیم
  پاسخ
تشکر شده توسط :
#6
(۱۳۹۲ بهمن ۱۲, ۱۲:۴۵ ب.ظ)M.J نوشته: یوزر و پسورد رو میریزی توی سشن؟؟؟ خوب سشنت سرقت بشه که ادمین بدبختت کارش تمومه!!!

نکن برادر من این چه کاریه؟

محمدجان پیشنهادت چیه؟Blush
منظورم ذخیره یوزر و پسورد توی سشن نیست. فرض کن id کاربر رو توی سشن ریختیم. بجای سشن پیشنهاد دیگه ای داری؟
بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
  پاسخ
تشکر شده توسط :
#7
سلام
پسورد رو تو سیشن قرار نمیدن
بعد از این که کاربر بررسی شد که یوزر پسوردش درست هست (به وسیله دیتابیس)
در سیشن اطلاعاتی مثل id , username ,ip یا موارد دیگه قرار میگیره ولی پسورد خیر
  پاسخ
تشکر شده توسط : webnevesht
#8
(۱۳۹۳ تير ۱۸, ۱۱:۲۳ ق.ظ)saeideng نوشته: سلام
پسورد رو تو سیشن قرار نمیدن
بعد از این که کاربر بررسی شد که یوزر پسوردش درست هست (به وسیله دیتابیس)
در سیشن اطلاعاتی مثل id , username ,ip یا موارد دیگه قرار میگیره ولی پسورد خیر

منطقشم همینه به نظر من
بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
  پاسخ
تشکر شده توسط :


پرش به انجمن:


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