Baru-baru ini samesite = lax tambahkan secara otomatis ke cookie sesi saya! atribut ini tambahkan saja ke sessionID:
"Set-Cookie ASP.NET_SessionId=zana3mklplqwewhwvika2125; path=/; HttpOnly; **SameSite=Lax**"
Situs web saya di-host di IIS 8.5, Windows 2012 R2, dan tidak punya WAF atau UrlRewrite dan saya mematikan AntiVirus (kasper).
tetapi memiliki masalah yang sama pada beberapa server pelanggan.
ada ide?
Diedit: Saya menemukan ini: https://support.microsoft.com/en-us/help/4524419/kb4524419
ASP.NET sekarang akan memancarkan header cookie SameSite ketika nilai HttpCookie.SameSite adalah 'Tidak Ada' untuk mengakomodasi perubahan yang akan datang untuk penanganan cookie SameSite di Chrome. Sebagai bagian dari perubahan ini, cookie FormsAuth dan SessionState juga akan dikeluarkan dengan SameSite = 'Lax' alih-alih default sebelumnya 'None', meskipun nilai-nilai ini dapat ditimpa di web.config.
Bagaimana saya bisa mengganti cookie samesite untuk SessionState di web.config? saya menambahkan baris ini, tetapi tidak berfungsi pada cookie SessionID!
<httpCookies sameSite="Unspecified" />
Diedit: Saya menemukan ini: https://docs.microsoft.com/en-us/dotnet/api/system.web.configuration.sessionstatesection.cookiesamesite?view=netframework-4.8#System_Web_Configuration_SessionStateSection_CookieSameSite
Tetapkan samesite untuk Stateserver dengan atribut "cookieSameSite" dari tag SessionState.
Jawaban:
Tambahkan opsi ini ke web.config untuk sameSite = Tidak Ada, Kurang atau Ketat
sumber
<httpCookies sameSite
tidak ditampilkan sebagai opsi yang valid di .Net Framework 4.8Saya tidak dapat menggunakan penulisan ulang, karena UrlRewrite tidak diinstal pada semua server pelanggan saya.
Akhirnya saya menambahkan cookieSameSite ke web.config saya:
sumber
cookieSameSite
fungsionalitas ke web.config - .NET 4.7.2 tidak. Tautan yang saya poskan di komentar saya juga ditautkan dari halaman yang Anda rujuk.Atribut CookieSameSite tidak tersedia untuk banyak kerangka kerja yang lebih lama. Jika Anda berada dalam situasi di mana jawaban yang diterima tidak didukung di lingkungan Anda, baca terus!
Saya memodifikasi beberapa jawaban SO untuk membuat penulisan ulang URL ini yang menambah
SameSite=None
cookie sesi, dan juga menghapusSameSite=None
dari semua cookie untuk sebagian besar browser yang tidak kompatibel. Tujuan penulisan ulang ini adalah untuk menjaga perilaku "warisan" sebelum Chrome 80.Tulisan lengkap di blog Coder Frontline saya :
Ini harus berfungsi untuk sebagian besar aplikasi ASP .Net dan ASP .Net Core, meskipun Kerangka yang lebih baru memiliki opsi kode dan konfigurasi yang tepat untuk memungkinkan Anda mengontrol perilaku ini. Saya akan merekomendasikan meneliti semua opsi yang tersedia untuk Anda sebelum menggunakan penulisan ulang saya di atas.
sumber
<system.net></system.net>
?<system.webServer>
SameSite=Lax
ini hanya akan menambahkanSameSite=None
dan tidak menggantinya.(SameSite=.*)?
semua dalam pola?SameSite=Lax
tajuk:((.*)(ASP.NET_SessionId)(=.*))(?=SameSite)
Lihat pembaruan regex101.com/r/7D9UdO/3 - namun perlu dicatat bahwa regex ini akan mengecualikan apa pun yang Anda inginkan setelahnya, seperti tajuk aman. Ini harus menjadi kondisi yang langka sehingga intinya adalah untuk melihat apa yang dipancarkan OS + framework + aplikasi Anda dan tulis regex yang sesuai. Saya akan memperbarui jawaban saya untuk mencerminkan kedua cara :)Pembaruan terakhir: jawaban zemien lebih komprehensif dan lengkap daripada jawaban saya. karena mengatur cookie berdasarkan agen pengguna.
Jawabanku:
Anda dapat mengganti SameSite = Lax dengan SameSite = Tidak ada untuk ASP.NET_SessionId di web.config dengan cara berikut:
Pembaruan: Untuk mencegah masalah iOS , ganti
dengan
sumber
@zemien solusi Anda dengan benar memecahkan masalah google chrome kami
Kami memiliki integrasi tempat aplikasi kami disematkan dalam iframe pada pihak ketiga. Chrome versi 80 dirilis 4 Februari 2020 mencegah cookie memuat.
Namun saya harus memodifikasi pola untuk menangkap semua cookie, menambahkan bendera Aman, dan ketentuan untuk tidak menerapkan penulisan ulang di localhost untuk lingkungan non https lokal kami
sumber
Bekerja untukku. Ditambahkan ke file web.config saya:
Upgrade ke .Net Framework 4.8 + patch instalasi: Pembaruan Kumulatif 2019-12 untuk .NET Framework 3.5 dan 4.8 untuk Windows 10 Versi 1909 untuk x64 (KB4533002)
sumber