Bagaimana saya bisa mengatur bendera Aman pada Cookie Sesi ASP.NET, sehingga hanya akan dikirim melalui HTTPS dan tidak pernah melalui HTTP biasa?
146
Bagaimana saya bisa mengatur bendera Aman pada Cookie Sesi ASP.NET, sehingga hanya akan dikirim melalui HTTPS dan tidak pernah melalui HTTP biasa?
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" />
<httpCookies requireSSL="true" />
Di
<system.web>
elemen, tambahkan elemen berikut:Namun, jika Anda memiliki
<forms>
elemen disystem.web\authentication
blok Anda , maka ini akan mengesampingkan pengaturanhttpCookies
, mengaturnya kembali ke defaultfalse
.Dalam hal ini, Anda perlu menambahkan
requireSSL="true"
atribut ke elemen bentuk juga.Jadi, Anda akan berakhir dengan:
Lihat di sini dan di sini untuk dokumentasi MSDN dari elemen-elemen ini.
sumber
roleManager
elemen, atributnyacookieRequireSSL="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:
Dengan begitu, pengembang tidak terpengaruh (berjalan di Debug), dan hanya server yang mendapatkan rilis Rilis yang memerlukan cookie untuk menjadi SSL.
sumber
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.
sumber
Berdasarkan jawaban @Mark D, saya akan menggunakan transformasi web.config untuk mengatur semua berbagai cookie menjadi Aman. Ini termasuk pengaturan
anonymousIdentification cookieRequireSSL
danhttpCookies requireSSL
.Untuk itu Anda akan mengatur web.Release.config Anda sebagai:
Jika Anda menggunakan Otentikasi Peran dan Bentuk dengan
ASP.NET Membership Provider
(Saya tahu, ini kuno), Anda juga ingin mengaturroleManager cookieRequireSSL
danforms requireSSL
atributnya sebagai aman juga. Jika demikian, web.release.config Anda mungkin terlihat seperti ini (termasuk di atas ditambah tag baru untuk API keanggotaan):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. :)
sumber