| |||||||
| المدوّنات | البحث | مشاركات اليوم | اجعل كافة المشاركات مقروءة |
|
| | LinkBack | أدوات الموضوع |
| |||||
| أخواني الأحباء بسوالف سوفت . بعد التحيه . أسعدني عودتي اليكم بعد انقطاع دام أشهر عن سوالف ![]() و قلت اني أبدأ عودتي بمناقشه بسيطه هادفه و بنفس الوقت استفيد منها و يستفيد الجميع ان شاء الله هناك أمر محيرني كل مره أثناء برمجتي لبرمجياتي. لذلك أصريت علي السؤال عنه من اجل ان استفيد .. الأمر خاص بال session بال php السيشن الان علي حد علمي انها تخزن بمجلد مشترك و هو بالتمب بالسيرفر المستضاف عليه السكربت . و ليس جهاز المستخدم . ان فهل هناك داعي عمليةمثلاً session_regenrate_id فائدة الداله session_regenerate_id ا تقوم بتغيير ال id ليسيشنز المستخدم مثلاً بعد ما يقوم الدخول مثلاً بالعضوية الخاصه به بالسكربت ( او بشكل عام عند ادخاله اي بيانات بالسكربت ) تساعد في الحد من عمليات ال session hijacking و session fixation لكن واجهتني مشكلة عند استخدامي لها . حيث اني قمت ببرمجة دالة لتسجيل الدخول . و استخدمت دالة session_regenerate_id لتغيير رقم ال session و تسجيل بيانات العضو فيه بعد تسجيل دخوله بطريقه صحيحه .. لكن واجهت ايررور ظهر لي و اختصاره : Warning: session_regenerate_id() [function.session-regenerate-id]: Cannot regenerate session id - headers already sent in C:\xampp\htdocs\script\includes\functions.inc.php on line 180 و هذا بسبب ان في صفحة ال login هناك ouput خرج قبل تنفيذ الداله .. و بالتالي ظهر هذا الايررور و لم يقم بتغيير رقم السيشن . مما سبب لي عملية تدهور و حتم علي اني اعيد ترتيب البرمجه من جديد لتتناسب معها ![]() ![]() فقلت أنظر لبعض السكربتات المبرمجه من بعض الأخوة المجانيه ربما تكون طريقتي خطأ لكن استغربت عندما تطلعت عليها ووجدت انها لا تستخدم هذه الداله فدار سؤال ببالي هل هناك بديل لها للحد من عمليات ال session hijacking و fixationغير استخدام هذه الداله و تغيير رقم السيشن .. ArabsPoject !
__________________ PHP Coder -- I Love PHP | |||||
|
| |||||
|
اخوي انا عملت برمجية سابقا وهي قوية امنيا جدا ... وما اعتقد انو الدالة المذكورة ضرورية ... لان السيشن منيعة جدا وتحفظ داخل السيرفر وما حدا يقدر يصلها الا بشق الانفس من قبل المحترفين ... بخصوص الخطأ الي طلعلك ... هل حاولت تستعمل ob_start(); قبل انا تكتب الامر session_start(); ؟؟ اذا لا حاول اكتبها وهات الجواب ... الى الامام اخوي . | |||||
|
| |||||
|
- من ناحية ان ملفات الجلسات تخزن في مجلد tmp الذي يصل اليه الجميع هناك حلين : * اما تخصيص مجلد لحفظ الجلسات لديك باستخدام الداله session_save_path . * او استخدام session_set_save_handler التى تتيح لك التحكم بشكل كامل في الجلسات وتخزينها في اي مكان غالبا ما يكون قاعدة البينات ..... وهو الحل الأفضل. * ايضا كملاحظة عليك دوما تخزين تعريف بالمستخدم في جلسته ... اقصد مثلا وضع رقم الاي بي في الجلسه بحيث لو استخدم هذه الجلسه شخص اخر ستعرف انها ليست له وتلغيها ... ممكن تعتم على بينات اخرى غير رقم الاي بي ![]() - الدالة session_regenerate_id تقوم بتكوين رقم جلسه جديد وهذا يعنى انها سوف ترسل cookie الى العميل يحمل رقم الجلسه الجديد .... اذا عليك معاملتها مثل setcookie بوضعها في اول الملف.
__________________ I Love PHP (d4d@hotmail.com) http://www.daif.net/ | |||||
|
| |||||
|
السلام عليكم, لنري هذا المثال كود PHP: كود: http://localhost/session.php?PHPSESSID=1234 ملحوظة: لاتقم بفتح tab جديد مثلا أو ضغط CTRL+N. استدعي نفس الرابط في المتصفح مرة أخري. ماذا تري؟ يظهر الرقم 6 ؟ استدعي نفس الرابط في متصفح آخر ؟ يظهر الرقم 7 ؟ التصرف الطبيعي أن هذه جلسة جديدة فلابد أن يقوم العداد بالعد من البداية واظهار رقم 1 في كل مرة. ولكن الذي حدث هو أننا فرضنا التعامل بمعرِّف الجلسة الذي حددناه بنفسنا في كل مرة وهذه عملية الـ Session fixation معني ذلك أنك بمجرد تسجيل دخولك في لوحة تحكم موقعك عن طريق رابط يحتوي علي معرِّف جلسة أرسله لك مهاجم, فهو يستطيع في نفس اللحظة أن يقوم بنسخ نفس الرابط الي متصفحه والدخول الي لوحة تحكم موقعك التي سجلت أنت دخولك بها مسبقاً. ما الحل؟ وكيف تحمي نفسك ؟؟؟ عن طريق استخدام دالة session_regenerate_id . وبالتالي حتي عندما تقوم بتسجيل دخولك عن طريق الرابط الذي أرسله المهاجم, فإن معرِّف الجلسة الذي أرسله لك سيتغير وبالتالي يصبح معرِّف جلستك مجهولاً لديه. وهكذا أنت أفسدت عليه محاولة اختراقك ![]() الكود بعد التعديل كود PHP: الآن قم بتنفيذ نفس الخطوات السابقة مع ملاحظة تغيير المعرِّف (أو حذف الكعكات) ![]() لذلك أري ضرورة استخدام الدالة | |||||
|
| |||||
|
السلام عليكم أخي EbNCaNa جزاك الله كل خير . سبحان الله . دالة ob_start رايتها مستخدمه بكثير من البرمجيات . و كنت متشوق لمعرفتها لكنني كسلت الذهاب للمانيوال بحكم اني لم احتاجها ببرمجياتي D: . و الان جاء وقتها لما انت ذكرتها . من خلال قرائتي الان السريعه عن عملها انه تقوم بعمل buffering (صد ) اي ouput الا الهيدرز فقط أخي daif أشكرك علي تعقيبك ![]() أخي التصميم .. أشكرك علي ردك و توضيحك الرائع . فعمليات ال sessin fixation و session hijacking من الأمور الهامة التي يجب التصدي لها . هناك tricks كثيره يمكن عملها لصد هذه الهجمات . لكنني فضلت استخدام طريقة تغيير ال session id
__________________ PHP Coder -- I Love PHP | |||||
|
| |||||
|
السلام عليكم ورحمه الله وبركاته مووضع مميز استمروا فى النقاش لانى مستمتع به
__________________ سبحان الله وبحمده سبحان الله العظيم "جديد" أكبر مركز تحميل عربي WwW.U111U.CoM دليل المواقع المرئية الأول عربيا 9mbc.com هل صليت على النبي !! اقرب للحقيقه ستهرب من العراق مثل الجرذان | |||||
|
| |||||
| اقتباس:
و هذه هديه مني لجميع الأعضاء .. ملف pdf متميز يشرح ال session و الأضرار الخاصه بها session fixation and session hijacking مع الصور الملف بالمرفقات
__________________ PHP Coder -- I Love PHP | |||||
|
![]() |
| |
| |
| أدوات الموضوع | |
| |
المواضيع المتشابهه | ||||
| الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
| [عرض خاص]: حماية معتمدة متكاملة لاعمالك الالكترونيه + تمتع بالخصم الان لفترة محدده ! | SecurityWay | قسم تبادل خبرات الاستضافة | 12 | 10-02-2006 01:25 AM |
| [عرض خاص]: حماية معتمدة متكاملة لاعمالك الالكترونيه + تمتع بالخصم الان لفترة محدده ! | SecurityWay | خدمات البيع والشراء والإعلانات التجارية | 0 | 10-05-2005 02:52 PM |
| استفسار بخصوص دالة عرض عدد مايحتوية قسم معين | حرالشمال | PHP | 3 | 02-01-2005 03:58 PM |
| بخصوص دالة print | تلال الامارات | PHP | 2 | 09-10-2004 06:27 AM |
| جالب الاخبار لموقعك | man | تطوير الويب | 3 | 24-02-2002 09:55 PM |