Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menguatkuasakan HTTPS di Seluruh Tapak dengan Selamat dalam ASP.NET?
Menguatkuasakan HTTPS Site-Wide dalam ASP.NET
Latar Belakang: Beberapa bulan lalu, tapak telah dilaksanakan di mana semua permintaan perlu dibuat melalui HTTPS. Satu-satunya penyelesaian yang berdaya maju pada masa itu melibatkan menyemak permintaan semasa acara pemuatan halaman dan mengubah hala ke HTTPS jika perlu.
Penyelesaian Alternatif:
Pendekatan yang lebih mantap ialah dengan gunakan HTTP Strict Transport Security (HSTS). Dengan melaksanakan HSTS, anda boleh menghalang permintaan HTTP tidak terjamin dan menguatkuasakan sambungan HTTPS untuk tempoh tertentu.
Konfigurasi Web.config:
Untuk mengkonfigurasi HSTS dalam ASP.NET, tambah kod berikut pada
<rewrite> <rules> <rule name="HTTP to HTTPS redirect" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="off" ignoreCase="true" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> </rule> </rules> <outboundRules> <rule name="Add Strict-Transport-Security when HTTPS" enabled="true"> <match serverVariable="RESPONSE_Strict_Transport_Security" pattern=".*" /> <conditions> <add input="{HTTPS}" pattern="on" ignoreCase="true" /> </conditions> <action type="Rewrite" value="max-age=31536000" /> </rule> </outboundRules> </rewrite>
Kod Global.asax.cs (Kaedah Alternatif):
Walaupun HSTS ialah pendekatan yang disyorkan, penyelesaian alternatif melibatkan penambahan kod berikut pada acara Application_BeginRequest dalam Global.asax.cs:
protected void Application_BeginRequest(Object sender, EventArgs e) { if (HttpContext.Current.Request.IsSecureConnection.Equals(false) && HttpContext.Current.Request.IsLocal.Equals(false)) { Response.Redirect("https://" + Request.ServerVariables["HTTP_HOST"] + HttpContext.Current.Request.RawUrl); } }
Perbandingan:
Menggunakan HSTS menawarkan kelebihan untuk mendapatkan sambungan HTTPS pada peringkat penyemak imbas, manakala pendekatan berasaskan kod dalam Global.asax.cs mengendalikan pengalihan hanya dalam aplikasi ASP.NET. Oleh itu, HSTS ialah penyelesaian yang lebih komprehensif dan disyorkan.
Atas ialah kandungan terperinci Bagaimana untuk Menguatkuasakan HTTPS di Seluruh Tapak dengan Selamat dalam ASP.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!