Jawaban:
Ada dua cara, satu httpCookies
elemen di web.config
memungkinkan Anda untuk mengaktifkan requireSSL
yang hanya mengirimkan semua cookie termasuk sesi di SSL saja dan juga otentikasi dalam bentuk, tetapi jika Anda mengaktifkan SSL pada httpcookies Anda juga harus menyalakannya di dalam konfigurasi formulir juga.
Edit untuk kejelasan:
Masukkan ini<system.web>
<httpCookies requireSSL="true" />
Di <system.web>
elemen, tambahkan elemen berikut:
<httpCookies requireSSL="true" />
Namun, jika Anda memiliki <forms>
elemen di system.web\authentication
blok Anda , maka ini akan mengesampingkan pengaturan httpCookies
, mengaturnya kembali ke default false
.
Dalam hal ini, Anda perlu menambahkan requireSSL="true"
atribut ke elemen bentuk juga.
Jadi, Anda akan berakhir dengan:
<system.web>
<authentication mode="Forms">
<forms requireSSL="true">
<!-- forms content -->
</forms>
</authentication>
</system.web>
Lihat di sini dan di sini untuk dokumentasi MSDN dari elemen-elemen ini.
roleManager
elemen, atributnya cookieRequireSSL="true"
juga harus disetel ke true. Ref. msdn.microsoft.com/en-us/library/…
Banyak hal menjadi berantakan dengan cepat jika Anda berbicara tentang kode check-in di lingkungan perusahaan. Kami telah menemukan bahwa pendekatan terbaik adalah memiliki web.Release.config berisi yang berikut:
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<authentication>
<forms xdt:Transform="Replace" timeout="20" requireSSL="true" />
</authentication>
</system.web>
Dengan begitu, pengembang tidak terpengaruh (berjalan di Debug), dan hanya server yang mendapatkan rilis Rilis yang memerlukan cookie untuk menjadi SSL.
secure - Atribut ini memberi tahu browser untuk hanya mengirim cookie jika permintaan dikirim melalui saluran aman seperti HTTPS. Ini akan membantu melindungi cookie agar tidak melewati permintaan yang tidak terenkripsi. Jika aplikasi dapat diakses melalui HTTP dan HTTPS, maka ada kemungkinan cookie dapat dikirim dalam bentuk teks.
Berdasarkan jawaban @Mark D, saya akan menggunakan transformasi web.config untuk mengatur semua berbagai cookie menjadi Aman. Ini termasuk pengaturan anonymousIdentification cookieRequireSSL
dan httpCookies requireSSL
.
Untuk itu Anda akan mengatur web.Release.config Anda sebagai:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<httpCookies xdt:Transform="SetAttributes(httpOnlyCookies)" httpOnlyCookies="true" />
<httpCookies xdt:Transform="SetAttributes(requireSSL)" requireSSL="true" />
<anonymousIdentification xdt:Transform="SetAttributes(cookieRequireSSL)" cookieRequireSSL="true" />
</system.web>
</configuration>
Jika Anda menggunakan Otentikasi Peran dan Bentuk dengan ASP.NET Membership Provider
(Saya tahu, ini kuno), Anda juga ingin mengatur roleManager cookieRequireSSL
dan forms requireSSL
atributnya sebagai aman juga. Jika demikian, web.release.config Anda mungkin terlihat seperti ini (termasuk di atas ditambah tag baru untuk API keanggotaan):
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<httpCookies xdt:Transform="SetAttributes(httpOnlyCookies)" httpOnlyCookies="true" />
<httpCookies xdt:Transform="SetAttributes(requireSSL)" requireSSL="true" />
<anonymousIdentification xdt:Transform="SetAttributes(cookieRequireSSL)" cookieRequireSSL="true" />
<roleManager xdt:Transform="SetAttributes(cookieRequireSSL)" cookieRequireSSL="true" />
<authentication>
<forms xdt:Transform="SetAttributes(requireSSL)" requireSSL="true" />
</authentication>
</system.web>
</configuration>
Latar belakang di web.config mentransformasikan di sini: http://go.microsoft.com/fwlink/?LinkId=125889
Jelas ini melampaui pertanyaan asli OP tetapi jika Anda tidak mengatur semuanya agar aman, Anda dapat berharap bahwa alat pemindaian keamanan akan melihat dan Anda akan melihat bendera merah muncul pada laporan. Tanya saya bagaimana saya tahu. :)
<httpCookies requireSSL="true" />