الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أصمم نظام مستخدمين دون ثغرات أمنية ؟

مغلق
بدأه محمد الأنصاري في 5 ديسمبر 2007 · 2 رد · 581 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لنفترض أنني أستخدمت هذا النظام التالي :

صفحة تسجيل الدخول :login.asp

تأخذ المعطيات التالية : password,username

بعد التأكد من أن المستخدم مسجل و كل شيء علي ما يرام هنا يكمن تساؤلي حول الطريقة المتبعة أن هذا المستخدم مسجل عبر أرسال

إستعلام إلي قاعدة البيانات و لن أفصل في ذلك و لكن من الشائع أستخدام "الكوكيز" cookies لتأكد في كل مرة يزور فيها

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

القيمة "نعم" أو "لا" Yes/No

لنفترض أنني أستخدمت برنامج يتعامل مباشرة بأوامر HTTP و ذلك لتلاعب بنظام الموقع فإذا ارسل لي يطلب قيمة كوكيز مخزنة لدي أرسل له :

GET /spec.html HTTP/1.1

Host: www.w3.org

Cookie: IsLogged=Yes

Accept: */*

يفتح لي الصفحة المحجوبة مباشرة رغم أنني لم أسجل الدخول فهل هناك سياسية أخري أكثر نجاعة خاصة أنني أعرف أن هناك أنظمة "مفتوح المصدر"

يمكن للكل تشريحها تعليمية تعليمة و مع ذلك يصعب أختراقها مثل أنظمة المنتديات المجانية و التجارية أيضا فكيف فعلو ذلك ؟

و شكرا أخوكم أبو عبد الله من المدينة المنورة

تم تعديل هذه المشاركة بواسطة محمد الأنصاري في 5 ديسمبر 2007 في 07:34

#2

الذي يحدث عادةً هو أن قيمة الكوكي لا تكون بهذه البساطة. بل تكون قيمة مشفرة تحتوي على اسم المستخدم و يحتفظ النظام بنسخة من هذه القيمة في قاعدة البيانات و يقوم بالمطابقة بين الإثنين. و هذه القيمة (للدواعي الأمنية طبعاً) تكون لها زمن صلاحية محدد. لذا الطريقة الوحيدة لكي يستطيع المخترق أن يعرفها (ليستخدمها) هو سرقتها مباشرة من جهاز المستخدم، و هذه طبعاً قصة أخرى.

#3
System Down كتب:
الذي يحدث عادةً هو أن قيمة الكوكي لا تكون بهذه البساطة. بل تكون قيمة مشفرة تحتوي على اسم المستخدم و يحتفظ النظام بنسخة من هذه القيمة في قاعدة البيانات و يقوم بالمطابقة بين الإثنين. و هذه القيمة (للدواعي الأمنية طبعاً) تكون لها زمن صلاحية محدد. لذا الطريقة الوحيدة لكي يستطيع المخترق أن يعرفها (ليستخدمها) هو سرقتها مباشرة من جهاز المستخدم، و هذه طبعاً قصة أخرى.

نعم .. هل تقصد أن النظام يرسل يمكن أن يعمل كاتاللي :

$crypted_username=md5('myusername','system_password'); //$crypted_username now is something like this CDFS545454 !

setcookie('username',$crypted_username); //

ولذلك علي المخترق معرفة كلمة السر الخاصة بالتشفير !

علي كل هذا ماكان ينقصني معرفته و شكرا لك علي الرد لقد نسيت هذه الجزئية .

:clapping:

هذا الموضوع مغلق.

مواضيع مشابهة