كيف يمكنني تعيين العلامة الآمنة على ملف تعريف ارتباط جلسة ASP.NET؟

StackOverflow https://stackoverflow.com/questions/1442863

  •  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>

هنا و هنا وثائق MSDN من هذه العناصر.

تصبح الأمور فوضوية بسرعة إذا كنت تتحدث عن رمز تسجيل الوصول في بيئة المؤسسة.لقد وجدنا أن أفضل نهج هو الحصول على 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، ثم هناك احتمال أن الكعكة يمكن إرسالها في نص واضح.

scroll top