Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 37886|Yanıt: 4

[ASP.NET] CSRF saldırılarını önlemek için AntiForgeryToken ile mvc ajax

[Bağlantıyı kopyala]
Yayınlandı 2.11.2017 10:06:29 | | | |
Projedeki sunucuya gönderilen ajax gönderi verilerinin sahte eşyalar karşıtı etiketlerle işaretlenmediği sıkça görülür; bu da CSRF saldırılarına yol açar ve forma Html.AntiForgeryToken() ekleyerek Asp.net MVC'ye sahte olmayan işaretler eklemek çok kolaydır.
Html.AntiForgeryToken() şifreli bir çift dizem oluşturur ve bunlar çerezlerde ve girişte saklanır. Ayrıca ajax gönderisinde AntiForgeryToken'ı da getiriyoruz
MVC'deki Html.AntiForgeryToken(), siteler arası istek sahtekarlığı (CSRF: Cross-site request forgery) saldırılarını önlemeye yönelik bir önlemdir; bu, XSS'den (XSS aynı zamanda CSS: Cross-Site-Script olarak da bilinir) farklıdır; XSS genellikle sitedeki güvenilir kullanıcıları kullanarak kötü amaçlı script kodu ağı içine ekleyerek saldırı yapar. CSRF ise, bir web sitesine saldıran sözde güvenilir bir kullanıcıdır.
Öncelikle, kodu şöyle inceleyelim:

Çalıştırıldığında, oluşturulan html kodu şöyle görünür:



Test butonuna tıklayıp test talep edelim ve aşağıdaki şekilde gösterildiği gibi sahteciliğe karşı kurabiye olup olmadığını görelim:



Kontrolcü içindeki kod şöyledir:

Her kontrolceye ValidateAntiForgeryToken özelliğini eklememiz gerekiyor, eğer kullanıcı AntiForgeryToken getirmezse, kullanıcıya aşağıdaki gibi dostça bir istem gönderebiliriz:







Önceki:asp.net mvc BindAttribute binding feature
Önümüzdeki:CMMI ile Agile arasındaki karşılaştırmalardan biri: ikisi arasındaki temel fark
 Ev sahibi| Yayınlandı 2.11.2017 11:05:37 |
Yukarıdaki yöntem için, özelliği özelleştirmeniz gerekir ve varsayılan ValidateAntiForgeryToken özelliğini kullanamazsınız

Varsayılan özellik, değeri form formunda alıp sonra değerlendirmek



Bir gönderi yöntemini jQuery ile sahtecilik karşıtı doğrulama ile kapsülledim ve kod şöyle:



 Ev sahibi| Yayınlandı 2.11.2017 11:17:36 |
IsAjaxRequest, bunun bir ajax talebi olup olmadığını belirlemek için

Temelde, IsAjaxRequest() başlıkta bir X-Requested-With alanı olup olmadığını ve bunun bir XMLHttpRequest olup olmadığını belirler

Dokümantasyona bakmak işe yaramaz, kaynak koduna bağlı.
 Ev sahibi| Yayınlandı 20.02.2021 19:22:26 |
ASP.NET CSRF saldırısı Ajax kapsülleme talep ediyor
https://www.itsvse.com/thread-8077-1-1.html
Yayınlandı 9.12.2021 18:37:56 |
testtesttesttest test
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com