صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 19

الموضوع: [إستفسار عاجل] لماذا نستخدم ال SESSION id ؟؟

  1. #1
    عضو فعال جدا
    تاريخ التسجيل
    Sep 2007
    المشاركات
    2,065

    [إستفسار عاجل] لماذا نستخدم ال SESSION id ؟؟



    السلام عليكم ورحمة الله وبركاته


    ال COOKIES و ال SESSIONS أنا أعرفهم معرفة بسيطه و أعرف أستخدمهم إستخدام سطحى أيضاً

    لكن ماهو ال SESSION ID ؟؟

    حيث أنه واجهتنى مشكله مع الكوكيز مع إنترنت إكسبلورر عندما قمت بكتابة الدالة التالية و لم تفلح الكوكيز فى تسجيل الدخول

    أنا أحتاج لفهم بشكل مبسط لعلاقة الكوكيز بالسيشنز لأن فهمى يصل لمرحلة أن الكوكيز لا علاقة لها بالسيشن و ان الكوكيز لتسجيل البيانات الدائم أما السيشن فهى لتسجيل البيانات فترة فتح المتصفح

    هل من أمثلة لأفضل طرق إعداد الكوكيز ؟ و خصوصاً إذا كنا سننتقل بها بين الصفحات

    الدالة المذكورة أعلاه

    كود PHP:
     
      
    ////////// login Check
    function check_login_user_and_password($username,$secured_passowrd,$checkbox_cookies_save){    
    // check the user name and password
    $result mysql_query("SELECT * FROM users WHERE username = '$username' AND password = '$secured_passowrd'");
    $num_rows mysql_num_rows($result);
    // use result array to get user's row in table
    $row mysql_fetch_assoc($result);
    // if they exist
    if($num_rows){   
    // asign data to variables
    $user_id $row['user_id'];
    $fullname $row['fullname'];
    $user_level $row['user_level'];
    $approved $row['approved'];
        
      if(
    $checkbox_cookies_save){      
    // use cookies
    // check if sessions are sent in header to destroy
    if($_SESSION['test'] == "test")  
    {  
    session_destroy();    
    }  
    setcookie("test""test"time()+60*60*24*3"/","localhost",0);
    setcookie("user_id"$user_idtime()+60*60*24*3"/","localhost",0);
    setcookie("fullname"$fullnametime()+60*60*24*3"/","localhost",0);
    setcookie("user_level"$user_leveltime()+60*60*24*3"/","localhost",0);
    setcookie("approved"$approvedtime()+60*60*24*3"/","localhost",0);
    return 
    "cookies"
    }else{
    // use seasions        
    // check if no sessions started already
    if(!isset($_SESSION)) 

    session_start(); 

    // register seasions
    $_SESSION['test']="test";
    session_register('test'); 
    $_SESSION['user_id']=$user_id;
    session_register('user_id'); 
    $_SESSION['fullname']=$fullname;
    session_register('fullname'); 
    $_SESSION['user_level']=$user_level;
    session_register('user_level'); 
    $_SESSION['approved']=$approved;
    session_register('approved');    
    return 
    "sessions"
        }
       
    }else{
        
        return 
    false;
    }


    و كل عام و أنتم بخير







  2. #2
    عضو نشيط
    تاريخ التسجيل
    Mar 2008
    المشاركات
    283


    اذا بتستخدم السيشن فلازم تفتح الجلسة في رأس الصفحة وليس في منتصفها

    مثلا صفحة index.php سوف تستدعي فيها قالب
    ما تستدعيه مباشرة

    المفروض :

    كود PHP:
    <?php
    session_start
    ();
    require (
    'header.html');
    // Content
    require ('footer.html')
    ?>
    أما الكوكيز

    كود PHP:
    <?php
    ob_start
    ();
    require (
    'header.html');
    // Content
    require ('footer.html')
    ?>
    تجنباً لخطأ
    Warning: Cannot modify header information - headers already sent by





    التعديل الأخير تم بواسطة Al7aRbi ; 19-09-2009 الساعة 08:28 AM

  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Sep 2007
    المشاركات
    2,065


    شكراً لردك أخى الكريم
    و كلنى لم أفهم

    أنا المشكلة عندى فى الكوكيز لا تعمل بشكل سليم و ليس السيشن ؟

    أما خطأ
    Warning: Cannot modify header information - headers already sent by

    فأنا اتغلب عليه بوضع

    ob_start();

    فى أول كل الصفحات التى بها كوكيز أو سيشن

    أنا أريد شرح مفصل للأسف و يكون شرح متميز لأن هذه النقطه بالذات تحتاج لتركيز شديد






  4. #4


    الكوكيز يتم تسجيلها على جهاز الزائر وهي ليست امنه تماما عند تسجيل المعلومات الحساسه مثل اسم المستخدم وصلاحياته وكلمة المرور ولكن تستخدم في اشياء بسيطه مثل اخر زيارة للعضو

    اما السيشن ويتم تسجيلها على السيرفر وهي الاكثر امانا لانك الوحيد الذي تستطيع التحكم فيها
    وتسجل بها المعلومات الحساسه كصلاحيات العضو وتتبخر بمجرد خمول جهاز الزائر
    اما session id فعند توليد سيشن لزائر ما فانها تكون برقم id خاص بها لا يتكرر ويسجل الرقم على جهاز الزائر
    وينصح باعادة توليد session id لضمان امان اكثر عن طريق الداله

    كود PHP:
    session_regenerate_id(true); 






    __________________
    Contact Me

  5. #5
    عضو فعال جدا
    تاريخ التسجيل
    Sep 2007
    المشاركات
    2,065


    أولا أشكرك أخى الكريم على ردك و لدى تعقيب بسيط أرجو أن تجيبنى عليه

    الكوكيز يتم تسجيلها على جهاز الزائر وهي ليست امنه تماما عند تسجيل المعلومات الحساسه مثل اسم المستخدم وصلاحياته وكلمة المرور ولكن تستخدم في اشياء بسيطه مثل اخر زيارة للعضو

    اما السيشن ويتم تسجيلها على السيرفر وهي الاكثر امانا لانك الوحيد الذي تستطيع التحكم فيها
    وتسجل بها المعلومات الحساسه كصلاحيات العضو وتتبخر بمجرد خمول جهاز الزائر
    إذا كانت الكوكيز ليست آمنة فكيف يستخدمها منتدى vb مثلاً فى حفاظ حالة الدخول ؟؟

    أنا أقوم ببرمجة سكربت فيه تسجيل الدخول فكيف أحافظ على دخول الأعضاء ؟؟و أحافظ على دخول الأدمن ؟؟






  6. #6
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    947


    أولا أشكرك أخى الكريم على ردك و لدى تعقيب بسيط أرجو أن تجيبنى عليه



    إذا كانت الكوكيز ليست آمنة فكيف يستخدمها منتدى vb مثلاً فى حفاظ حالة الدخول ؟؟

    أنا أقوم ببرمجة سكربت فيه تسجيل الدخول فكيف أحافظ على دخول الأعضاء ؟؟و أحافظ على دخول الأدمن ؟؟
    ولذلك يمكن اختراقها بكل سهولة بمجرد الحصول على الكوكيز اذا كان مخزن بالكوكيز .. وعن تجربة





    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

  7. #7


    أولا أشكرك أخى الكريم على ردك و لدى تعقيب بسيط أرجو أن تجيبنى عليه



    إذا كانت الكوكيز ليست آمنة فكيف يستخدمها منتدى vb مثلاً فى حفاظ حالة الدخول ؟؟

    أنا أقوم ببرمجة سكربت فيه تسجيل الدخول فكيف أحافظ على دخول الأعضاء ؟؟و أحافظ على دخول الأدمن ؟؟
    الفيبولتن لا يخزن معلومات حساسة في الكوكيز ولكنه يسجل رقم جلسه داخليه
    ويقوم بعمل جلسة تحويل كل البيانات المهمة في قاعدة البيانات في جدول اسمه session
    الكوكيز مجرد موجه لهذه الجلسة فقط ولا يحوي معلومات هامة
    وهذه الطريقة ليست حصر علي الفيبولتن
    فجوجل والهوتميل تستخدمها لحفظ دخولك في البريد

    اما عن سبب استخدام الكوكيز من تلك المواقع كلها فذلك لكون الجلسات لها الكثير من المساوئ





    __________________
    السيف أصدق أنباء من الكتب

  8. #8
    عضو فعال جدا
    تاريخ التسجيل
    Sep 2007
    المشاركات
    2,065


    أنت تقول أنه يمكن إختراق الكوكيز ولكن أنا قمت بعمل هذه الداله والتى لايمك لأحد أن يفك شفرتها إلا من قام بعمل الداله نفسه

    تفضل و شاهد الطريقة التى إبتكرتها و قيمها


    كود PHP:
    /// secure and unsecure cookies
    function sec_unsec_cookie($var,$job){
    if(
    $job == "sec"){
    $secvar="khashabawy".$var;
    $secvar=base64_encode("$secvar");
    $secvarstr_replace("=","",$secvar);
    return 
    $secvar;
    }elseif(
    $job == "unsec"){
    $secvar $secvar."==";
    $unsecvar base64_decode("$var");
    $var=str_replace("khashabawy","",$unsecvar);    
    return 
    $var;
    }else{
        echo 
    "wrong parameter to cookies security function";
    }
     

    و يتم إستخدامها كالتالى


    كود PHP:
    sec_unsec_cookie("المتغير الذى تريد تشفيره","sec"
    كود PHP:
    sec_unsec_cookie("المتغير المشفر","unsec"

    لاحظ أن التشفير يعتمد على كلمة khashabawy

    و بتغييرها يتغير التشفير نهائياً




    و هذا مثال على تسجيل بيانات تسجيل الدخول مع تشفير الكوكييز

    كود PHP:
    ////////// login Check
    function check_login_user_and_password($username,$secured_passowrd){    
    // check the user name and password
    $result mysql_query("SELECT * FROM users WHERE username = '$username' AND password = '$secured_passowrd'");
    $num_rows mysql_num_rows($result);
    // use result array to get user's row in table
    $row mysql_fetch_assoc($result);
    // if they exist
    if($num_rows){   
    // secure then asign data to variables
    $sec_user_id sec_unsec_cookie($row['user_id'],sec);
    // declare secured cookies
    setcookie("aaaa"$sec_user_idtime()+3600);
    return 
    true
     
    }else{
     
        return 
    false;
    }

    فكما تلاحظ تم التأكد من وجود العضو فى قاعدة البيانات

    ثم تم تمرير بياناته لدالة التشفير

    و تم رفع كوكيز بإسم غير معروف aaaa


    عند الإستخدام فى الصفحات

    نستدعى الكوكيز و نمررها لدالة فك التشفير و نحدد الصلاحيات كما هو فى الدالة التالية

    كود PHP:
     
    function user_case_det(){
    // getting info from cookies
    $user_id sec_unsec_cookie($_COOKIE['aaaa'],unsec);
    if(
    $user_id ""){
    return 
    $case "guest";
    }elseif(
    $user_id 1){
    return 
    $case "admin";
    }elseif(
    $user_id 2){
    return 
    $case "user no 2";
    }


    و تستخدمها كالتالى

    كود PHP:
    echo user_case_det(); 
    حيث يقوم بطباعة القيمة المشفرة الموجوده فى الكوكيز

    أو تستخدمها كما تشاء فى برمجيتك

    تقبل تحياتى






  9. #9
    عضو فعال جدا
    تاريخ التسجيل
    Sep 2007
    المشاركات
    2,065


    تم إرفاق صورة للكوكيز المشفرة بواسطة الدالة المبتكرة أعلاه





    الصور المرفقة الصور المرفقة  

  10. #10


    أنت تقول أنه يمكن إختراق الكوكيز ولكن أنا قمت بعمل هذه الداله والتى لايمك لأحد أن يفك شفرتها إلا من قام بعمل الداله نفسه

    تفضل و شاهد الطريقة التى إبتكرتها و قيمها


    [php]
    /// secure and unsecure cookies
    function sec_unsec_cookie($var,$job){
    if($job == "sec"){
    $secvar="khashabawy".$var;
    $secvar=base64_encode("$secvar");
    $secvar= str_replace("=","",$secvar);
    return $secvar;
    }elseif($job == "unsec"){
    $secvar = $secvar."==";
    $unsecvar = base64_decode("$var");
    $var=str_replace("khashabawy","",$unsecvar);
    return $var;
    }else{
    echo "wrong parameter to cookies security function";
    }

    }
    عن طريق الداله

    كود PHP:
    base64_decode() 
    استطيع فك تشفير النص المشفر مسبقا ومن ثم محاولة نزع البريفكس المضاف

    وهذا كله شغل هاكر مبتدا يخترق جهازك ويفك تشفير الكوكيز ويستخدمها ضدك





    __________________
    Contact Me

  11. #11
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    731


    قرأت الموضوع سابقاً.. وتجنبت الرد عليه

    الذي يعتقد أن الكوكيز غير آمنه فالعيب في قدراته كمبرمج لا الكوكيز

    والذي يستشهد بإمكانية إختراق المنتدى في حال سرقة الكوكيز.. كلامك صحيح.. ولكن هنا المشكلة ليست في الكوكيز بل في جهاز الشخص
    الكوكيز المفترض بها أن تكون سرية.. والمتصفح مسؤول عن ذلك. أما إذا وصلت لجهاز المستخدم بأي وسيلة أو استطعت الحصول على الكوكيز من خلال ثغرة XSS مثلاً فهذا أمر آخر..

    إذا كنت لا تملك المهارة الكافية فقل بأن الكوكيز غير آمنة, وهنيئاً لك بالسيشن (السيشن دائماً أريح للمبتدئين وأسهل لهم).. ولكن تذكر أن الخطأ يكون من المبرمج لا الدالة.

    في مثال الأخ خشباوي الكوكيز لم تحتوي على أي بيانات سرية. لا كلمة مرور ولا غيره.. ولكنه أخطأ في الإعتماد على اليوزر اي دي وهو قيمة معروفة ليست سرية.

    بإمكانك تستخدم جدول للجلسات كما هو المعمول في سكربت VB أو أن تستخدم قيمة أخرى.. مثلاً نص عشوائي يتم تخزينة في جدول اليوزر ويتم تحديثة عند انتهاء مدة الكوكيز والنص يكون مشفر بالكوكيز بآلية معينة مثل ما انت عامل هنا. وتقارن بين النص بالكوكيز واليوزر اي دي

    أخوي Mr.Ahmed EssAm أختلف معك تماماً
    خصزصاً في :
    وهذا كله شغل هاكر مبتدا يخترق جهازك ويفك تشفير الكوكيز ويستخدمها ضدك
    دوري كمبرمج يقف عند حد السكربت ولست مسؤول عن جهاز المستخدم.. سواءً سرقت منه الباسوورد او الكوكيز والتي عادت تحتاج ثغرة XSS بالموقع نفسه





    __________________
    Saudi Wanderer
    My Blog : SWanderer

  12. #12
    عضو فعال جدا
    تاريخ التسجيل
    Sep 2007
    المشاركات
    2,065


    استطيع فك تشفير النص المشفر مسبقا ومن ثم محاولة نزع البريفكس المضاف

    وهذا كله شغل هاكر مبتدا يخترق جهازك ويفك تشفير الكوكيز ويستخدمها ضدك

    أخى الكريم .. أحييك أولاً على إشتراك فى الموضوع و إختلاف الرأى لا يفسد للود قضيه

    إذا كان كلامك صحيح أرنى كيف تخترق بيانات عضو من أعضاء هذا السكربت الذى أبرمجه و قمت بتأمينه بالشكل السابق

    Home Page

    لديك عضو بإسم : banned باسسورد banned

    سجل الدخول .. لديك الكووكيز .. قم بإختراقه و أرنى رقم هاتفه


    الصعوبة تكمن فى أنك لن تستطيع فك البريفكس

    كما أنه إذا تم إضافة البريفكس فى داخل النص المشفر فإنه لن يتم فكه أساساً و لن يتعرف أبداً ماهو التشفير المستخدم



    الأخ
    Saudi Wanderer

    أحييك على رأيك العلمى و لكن أود التعقيب على


    في مثال الأخ خشباوي الكوكيز لم تحتوي على أي بيانات سرية. لا كلمة مرور ولا غيره.. ولكنه أخطأ في الإعتماد على اليوزر اي دي وهو قيمة معروفة ليست سرية.

    ما هو نوع الخطأ فى الإعتماد على يوزر آى دى ؟؟

    لاحظ أنه مشفر .. و الكوكيز الذى يحمله بإسم aaaa أى أنه لا يدل على أنه آى دى

    و إن خمن أنه آى دى ... فلن يفك التشفير

    وإن فك التشفير ؟؟ ماذا سيفعل باليوزر آى دى ؟؟


    وفى برمجياتك علام تعتمد أنت ؟؟




    بإمكانك تستخدم جدول للجلسات كما هو المعمول في سكربت VB أو أن تستخدم قيمة أخرى.. مثلاً نص عشوائي يتم تخزينة في جدول اليوزر ويتم تحديثة عند انتهاء مدة الكوكيز والنص يكون مشفر بالكوكيز بآلية معينة مثل ما انت عامل هنا. وتقارن بين النص بالكوكيز واليوزر اي دي
    حضرتنى هذه الفكرة و أنا أتناقش مع صديق من المغرب و لم أكن أعلم أنه هو ما تستخدمه الفبلوتن على شكل session id
    و لكنى فكرت أنه إذا أمكننى أن أأمن الكووكيز بشكل جيد ... فلربما إستطعت توفير إستعلام فى القاعده عن السيسن الحالى فى كل مره يدخل فيها


    و شكراً لك أخى الكريم






  13. #13


    قرأت الموضوع سابقاً.. وتجنبت الرد عليه

    الذي يعتقد أن الكوكيز غير آمنه فالعيب في قدراته كمبرمج لا الكوكيز

    والذي يستشهد بإمكانية إختراق المنتدى في حال سرقة الكوكيز.. كلامك صحيح.. ولكن هنا المشكلة ليست في الكوكيز بل في جهاز الشخص
    الكوكيز المفترض بها أن تكون سرية.. والمتصفح مسؤول عن ذلك. أما إذا وصلت لجهاز المستخدم بأي وسيلة أو استطعت الحصول على الكوكيز من خلال ثغرة XSS مثلاً فهذا أمر آخر..

    إذا كنت لا تملك المهارة الكافية فقل بأن الكوكيز غير آمنة, وهنيئاً لك بالسيشن (السيشن دائماً أريح للمبتدئين وأسهل لهم).. ولكن تذكر أن الخطأ يكون من المبرمج لا الدالة.

    في مثال الأخ خشباوي الكوكيز لم تحتوي على أي بيانات سرية. لا كلمة مرور ولا غيره.. ولكنه أخطأ في الإعتماد على اليوزر اي دي وهو قيمة معروفة ليست سرية.

    بإمكانك تستخدم جدول للجلسات كما هو المعمول في سكربت VB أو أن تستخدم قيمة أخرى.. مثلاً نص عشوائي يتم تخزينة في جدول اليوزر ويتم تحديثة عند انتهاء مدة الكوكيز والنص يكون مشفر بالكوكيز بآلية معينة مثل ما انت عامل هنا. وتقارن بين النص بالكوكيز واليوزر اي دي

    أخوي Mr.Ahmed EssAm أختلف معك تماماً
    خصزصاً في :

    دوري كمبرمج يقف عند حد السكربت ولست مسؤول عن جهاز المستخدم.. سواءً سرقت منه الباسوورد او الكوكيز والتي عادت تحتاج ثغرة XSS بالموقع نفسه
    هذا ما أردت قوله
    دوري كمبرمج ان اجعل البرمجية فيها اتصال دائم واجعل الخيار بيد الزائر فلو اختار فهو المسئول عن كوكيزه

    اما مسألة شفترت ام لم تشفر محتوي الكوكيز فبمجرد الوصول له بالجافاسكربت xss وسرقته او اختراق الجهاز واخزه سيتم استخدامه والولوج باليوزر والباس الجديدة

    التشفير هنا لن يفيد
    ولكنه لا بد منه وذلك لكون هناك من يسجل ببيانات تكون نفس بياناته في مواقع اخري
    فأقل ما نقدمه له ان نحفظ في كوكيزه بيانات تسمح له ( ولمن اخترقه ) بالولوج
    ولكنها في اصلها لا تحمل ما هو مهم للمخترق سوي الولوج

    مسألة آمنة وغير امنة الصراحة لم اسمعها من قبل في سكربت محترم وكما وضحت هي في انظمة البريد كلها بما فيها جوجل





    __________________
    السيف أصدق أنباء من الكتب

  14. #14
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,516


    خشباوي - لا اعرف لكن استعمال كل هذه الدوال مثل base64_decode وغيرها جيد في المواقع الصغيرة ....
    لكن في المواقع الكبيرة يحبذ تجنبها ....
    يجب دائماً الاهتمام بال Script Optimization وعندها تكون وظيفة المبرمج قياس وقت كل سكريبت





    __________________
    أحب سوالف ولا احب الجدليين!
    اسماء اولاد وبنات http://muslim-names.us
    1000 مزاد http://1000mazad.com
    موقع نكت سعوديةhttp://arab-jokes.net

  15. #15


    خطورة الكوكيز لا تكمن فقط في قوة البرمجيه وتجنب ثغرات الxss ولكن تعتمد ايضا على المستخدم ووعيه

    فاذا تم زرع باتش لاحد برامج الهاكنج سيتم سحب كامل الكوكيز بجهاز المصاب وفك تشفيرها عن طريق نفس البرنامج وتقديمها للمخترق جاهزه وهذا عن تجربه

    لذلك اعتماد السكربت بشكل اساسي على الكوكيز امر خاطئ ولكن يمكنك وضعها كاختيار امام الزائر مثل الفيبلتون تقدم خيار حفظ الكوكيز وليس اجباري

    ولولا قصور الكوكيز لما ظهرت السيشن





    __________________
    Contact Me





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض