كيف يمكنني تعيين العلامة الآمنة على ملف تعريف ارتباط جلسة ASP.NET؟
-
22-07-2019 - |
سؤال
كيف يمكنني تعيين العلامة الآمنة على ملف تعريف ارتباط جلسة ASP.NET، بحيث يتم إرسالها فقط عبر HTTPS وليس عبر HTTP العادي أبدًا؟
المحلول
هناك طريقتان، واحدة httpCookies
عنصر في web.config
يسمح لك بالتشغيل requireSSL
والتي تنقل فقط جميع ملفات تعريف الارتباط بما في ذلك الجلسة في SSL فقط وأيضًا داخل مصادقة النماذج، ولكن إذا قمت بتشغيل SSL على ملفات تعريف الارتباط http، فيجب عليك أيضًا تشغيلها داخل تكوين النماذج أيضًا.
تحرير من أجل الوضوح:ضع هذا في <system.web>
<httpCookies requireSSL="true" />
نصائح أخرى
في العنصر <system.web>
، إضافة العنصر التالي:
<httpCookies requireSSL="true" />
ولكن، إذا كان لديك عنصر <forms>
في كتلة system.web\authentication
الخاص بك، ثم وهذا ستتجاوز الإعداد في httpCookies
، وتحديد إعادته إلى false
الافتراضية.
في هذه الحالة، تحتاج إلى إضافة سمة requireSSL="true"
إلى العنصر أشكال كذلك.
وهكذا سوف ينتهي بك الأمر مع:
<system.web>
<authentication mode="Forms">
<forms requireSSL="true">
<!-- forms content -->
</forms>
</authentication>
</system.web>
تصبح الأمور فوضوية بسرعة إذا كنت تتحدث عن رمز تسجيل الوصول في بيئة المؤسسة.لقد وجدنا أن أفضل نهج هو الحصول على web.Release.config تحتوي على ما يلي:
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<authentication>
<forms xdt:Transform="Replace" timeout="20" requireSSL="true" />
</authentication>
</system.web>
وبهذه الطريقة، لا يتأثر المطورون (الذين يعملون في Debug)، ولا تتطلب سوى الخوادم التي تحصل على إصدارات الإصدار أن تكون ملفات تعريف الارتباط SSL.
وأمنا - هذه السمة تخبر المتصفح لإرسال فقط الكعكة إذا كان يتم إرسال الطلب عبر قناة آمنة مثل HTTPS. هذا وسوف تساعد على حماية ملفات تعريف الارتباط من يتم تمريرها على طلبات غير مشفرة. إذا كان من الممكن الوصول إلى تطبيق على كل من HTTP و HTTPS، ثم هناك احتمال أن الكعكة يمكن إرسالها في نص واضح.