Saya sedang meninjau keamanan situs web ASP.NET yang berusia sekitar 7 tahun. Pada saat situs dibuat, panduan Microsoft adalah menambahkan yang berikut ini ke Halaman Dasar umum (diwarisi oleh semua kode di belakang halaman):
Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
MyBase.OnInit(e)
If Request.IsSecureConnection = True Then
ViewStateUserKey = Session.SessionID
End If
End Sub
Saran ini berasal dari Artikel MSDN berikut dari 2005.
Pertanyaan saya adalah apakah ini masih merupakan teknik yang valid dan efektif untuk melindungi terhadap serangan CSRF.
Catatan, saya membaca pertanyaan SO tentang topik ini, tetapi tampaknya perlindungan otomatis proyek Visual Studio 2012+ untuk CSRF ditambahkan ke Halaman Master. Situs yang saya ulas tidak menggunakan Halaman Master karena konflik CSS, dan tidak termasuk dalam cakupan untuk menambahkan Halaman Master ke dalam pembaruan saat ini.