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

مشكلة الكوكيز

بدأه alrahel في 25 أغسطس 2010 · 8 رد · 683 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندي سؤال..

عندي موقع بعد رفع الموقع

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

هل تستطيعوا إفادتني وجزاكم ربي كل الخير.

الكود بالويب كونفيج

<authentication mode="Forms">
			< forms name=".mysite" path="/" timeout="500000" slidingExpiration="true " cookieless="UseCookies"  loginUrl="~/Account/Login.aspx" />
    </authentication>
#2
alrahel كتب:

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

الكود بالويب كونفيج

<authentication mode="Forms">
			< forms name=".mysite" path="/" timeout="500000" slidingExpiration="true " cookieless="UseCookies"  loginUrl="~/Account/Login.aspx" />
    </authentication>

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

فى البداية : قم بتغير slidingExpiration إلى False ولمزيد من المعلوماتهنــــا

الكود ليس فيه شئ يبدو صحيح تماماً . ولكن هل تعمل من خلال الأدوات Loggin Controls أم من خلال الكود أى C#,Vb.

Ahmed Moosa

Microsoft Community Contributor | MCC

Microsoft Certified Professional Developer | MCPD

Microsoft Certified Technology Specialist | MCTS

Senior .NET Developer

.Net Trainer

English blog : http://weblogs.asp.net/ahmedmoosa/

مدونة عربى : http://ahmedmoosa.wordpress.com/

#3

شكرا لك أخي أحمد على التواجد ..

نعم أستخدم Loggin Controls ..

وغيرت slidingExpiration

والمشكله مازالت موجوده..

#4
Ahmed Moosa كتب:

فى البداية : قم بتغير slidingExpiration إلى False ولمزيد من المعلومات هنــــا.

لا داع للتغيير.

slidingExpiration=true تؤدي إلى تحديث مدة عمر صلاحية الـ cookie إلى قيمة timeout في كل مرة يتم فيها زيارة الموقع.

بمعنى لو قام المستخدم بزيارة موقع الساعة 2:00

وحصل على cookie تنقضي مدتها الزمنية الساعة 2:20 لأن timeout=20 مثلاً

ثم أغلق الموقع وعاد لزيارته الساعة 2:09 فإن عمر الكوكيز سيتم إعادة ضبطه وفقاً للـ timeout وسيتم تحديث الـ cookie بحيث تنقضي مدتها الزمنية الساعة 2:29 (لاحظ أنه تم إضافة 20د مجدداً)

هذا ما يفترض أن يحصل بالأحوال الطبيعية.

بكل الأحوال timeout الذي يستخدمه صاحب الموضوع هو 500000د أي تقريباً سنة كاملة! فلن تلاحظ تأثير slidingExpiration أساساً في هذه الحالة.

أخيراً، أعيد ما ذكره الأخ أحمد موسى من أن الكود يبدو صحيح لا يحوي أي أخطاء .. فيما يلي القيم الافتراضية الخاصة بالاستخدام:

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="Login.aspx"
           protection="All"
           timeout="30"
           name=".ASPXAUTH" 
           path="/"
           requireSSL="false"
           slidingExpiration="true"
           defaultUrl="default.aspx"
           cookieless="UseDeviceProfile"
           enableCrossAppRedirects="false" />
  </authentication>
</system.web>

مأخوذه من الرابط للمراجعة والإطلاع: http://msdn.microsoft.com/en-us/library/ff647070.aspx

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#5
Xacker كتب:

لا داع للتغيير.

slidingExpiration=true تؤدي إلى تحديث مدة عمر صلاحية الـ cookie إلى قيمة timeout في كل مرة يتم فيها زيارة الموقع.

بمعنى لو قام المستخدم بزيارة موقع الساعة 2:00

وحصل على cookie تنقضي مدتها الزمنية الساعة 2:20 لأن timeout=20 مثلاً

ثم أغلق الموقع وعاد لزيارته الساعة 2:09 فإن عمر الكوكيز سيتم إعادة ضبطه وفقاً للـ timeout وسيتم تحديث الـ cookie بحيث تنقضي مدتها الزمنية الساعة 2:29 (لاحظ أنه تم إضافة 20د مجدداً)

هذا ما يفترض أن يحصل بالأحوال الطبيعية.

بكل الأحوال timeout الذي يستخدمه صاحب الموضوع هو 500000د أي تقريباً سنة كاملة! فلن تلاحظ تأثير slidingExpiration أساساً في هذه الحالة.

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

لم تكن Sliding Expiration الحل المقدم , بل تم ذكر جعلها بالقيمة FALSE لدواعى أمنية والقيام بالأفضل ونكرر لا علاقة لها بحل المشكلة .

الحل الذى يحضرنى الإن هو العمل معها برمجياً أى تخزين وإسترجاع Cookies يدوياً .

تم تعديل هذه المشاركة بواسطة Ahmed Moosa في 25 أغسطس 2010 في 19:05

Ahmed Moosa

Microsoft Community Contributor | MCC

Microsoft Certified Professional Developer | MCPD

Microsoft Certified Technology Specialist | MCTS

Senior .NET Developer

.Net Trainer

English blog : http://weblogs.asp.net/ahmedmoosa/

مدونة عربى : http://ahmedmoosa.wordpress.com/

#6

أخواني أشكركم على التواجد ..

أذا كان الكود صحيح ..

يعني الحين زي المنتديات إذا وضعت علامة صح على تذكرني . تتذكر اليوزر لعدة أيام..

في موقعي إذا وضعت العلامه فهي لاتزيد عن ساعه ..

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

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

وشكرا لكم جميعا

#7

slidingExpiration ليست المشكلة الأمنية فعلياً.

إمكانية الحصول على الـ token بطريقة أخرى ما هي المشكلة الأمنية، كوضع timeout=500000 أي أن الـ cookie ستصبح expired بعد مرور عام (تقريباً).. هل تجد أن slidingExpiration مهمة في هذه الحالة إن كانت true/false أو أن الـ attacker سيكون على عجلة من أمره حتى يستطيع استغلال ما حصل عليه كما يقترح التنبيه على الرابط أعلاه ؟

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

بالتالي أن أضع timeout=1440 مثلاً (أي 24 ساعة) ومن ثم slidingExpiration=false فهذا شئ معقول ومقبول، لا أن أقوم بتصوير slidingExpiration على أنها تهديد أمني يجب الابتعاد عنه.

التصميم السئ في التطبيق من الناحية الأمنية هو الخطر الذي يجب الانتباه إليه.

تحياتي.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#8

Xacker شكرا اك على معلوماتك القيّمه

وماذا تنصحني في حل هذه المشكلة.

أنا كل الي بدي إياه ان الموقع يتذكر المستخدم لمدة 48 ساعه كمثل المنتديات وغيرها ..

مالحل وجزاكم الله خيرا..

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