ฉันกำลังตรวจสอบความปลอดภัยของเว็บไซต์ ASP.NET ที่มีอายุประมาณ 7 ปี ในขณะที่ไซต์ถูกสร้างขึ้น คำแนะนำของ Microsoft คือการเพิ่มสิ่งต่อไปนี้ลงในเพจฐานทั่วไป (สืบทอดมาจากโค้ดทั้งหมดที่อยู่เบื้องหลังเพจ):
Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
MyBase.OnInit(e)
If Request.IsSecureConnection = True Then
ViewStateUserKey = Session.SessionID
End If
End Sub
คำแนะนำนี้มาจากบทความ MSDN ต่อไปนี้จาก 2548.
คำถามของฉันคือว่านี่ยังคงเป็นเทคนิคที่ถูกต้องและมีประสิทธิภาพในการป้องกันการโจมตี CSRF หรือไม่
โปรดทราบว่าฉันอ่าน คำถาม SO เกี่ยวกับหัวข้อนี้ แต่ปรากฏว่ามีการเพิ่มการป้องกันโปรเจ็กต์ Visual Studio 2012+ ที่สร้างขึ้นอัตโนมัติสำหรับ CSRF ลงในมาสเตอร์เพจ เว็บไซต์ที่ฉันกำลังตรวจสอบไม่ได้ใช้มาสเตอร์เพจเนื่องจากข้อขัดแย้งของ CSS และไม่อยู่ในขอบเขตที่จะเพิ่มมาสเตอร์เพจลงในการอัปเดตปัจจุบัน