Örnek olarak benim MVC de Attack adında ActionResultlarım var. Tabi bunun HttpGet ve HttpPostları da var. Ben sayfama girdiğimde HttpGet aşamasında görüntüleme HttpPost aşamasında da genel olarak silme, ekleme, güncelleme vb. gibi işlemler yapıyorum. Buraya kadar her şey çok güzel. Peki HttpPost aşamasında dışarıdan gelen saldırıları nasıl engelleyeceğim. İşte engelleyemediğimiz bir durum.
ActionResultlarım görüldüğü gibi savunmasız ve AntiForgeryToken kullanmadım. Kısacık bir html oluşturuyorum.
Html de görüldüğü gibi hedef Urlimi belirttim. Birde id verdim. Yani HttpPost'a veride gönderdim. Bakalım ne olacak.
Not : Htmli çalıştırmadan önce proje debug modda çalışır olarak bırakıyorum.
Gördüğünüz gibi yakalandık :) İşte bu durumu engellemek için gelin AntiForgeryToken eklediğimizde neler oluyor bakalım.
View'ımıza @Html.AntiForgeryToken() ekliyoruz ve bir de HttpPost kısmına [ValidateAntiForgeryToken] attribute'ünü ekliyoruz. Bakalım şimdi ne olacak.
Oooooo işe yaradı. Yani dışarıdan ataklara karşı en azından küçük de olsa bir önlem almış olduk. Tabi daha çok güvenlik unsuru koymamız lazım ama şimdilik bu kadar. Hadi güvenli siteler :)
Tsk ederiz paylaşım için fakat yakalanınca ne oluyor anlıyamadım.
YanıtlaSilDışarıdan javascript ataklarıyla verileriniz silinebilir, değiştirilebilir. Artık siz ne kadarına izin verdiyseniz.
YanıtlaSilhiç bi s*kim olmaz
YanıtlaSilteşekkürler..
YanıtlaSil