Asp.Net Web API’da Cross-Site Request Forgery (CSRF) Saldırı Güvenliği

Bunlar da hoşunuza gidebilir...

10 Cevaplar

  1. Fatih dedi ki:

    Elinize sağlık güzel yazı olmuş.benim sorum güvenlikle ilgili. Bütün request’leri validate etmem lazım. kullanıcı sürekli olarak saçma sapan request’lerde bulunduğunda örnek olarak; userId 4608 olsun ve user bilglsini getiren metoda 4608 den başlayıp random sayılar üreterek ( /account/getUserInfo/4609) başka kullanıcıların bilgileri için request’te bulunduklarında güvenliği bir şekilde sağlamam lazım.
    yardımcı olursanız sevinirim.

    • Gökhan Gökalp Gökhan Gökalp dedi ki:

      Teşekkür ederim öncelikle. 1. si bu tarz method’larınız öncelikle neden authentication gerektirmiyor diye sorabilir miyim? 2. olarak da seri bir şekilde aynı method’a request’ler geliyorsa, Web API’da Throttling konusuna bir bakmanızı tavsiye ederim.

      • Fatih dedi ki:

        Merhabalar kullanıcı login olduktan sonra diğer kullanıcılar için istek gönderemesin istiyorum.
        Örneğin login olan kullanıcı 150 id numarasına sahip, aşağıdaki adreste kullanıcı bilgilerini Update ediyorum . localhost:25399/User/Update/150 fakat 151 olarak değiştirdiğimde güncelleme işlemini yinede gerçekleştiriyor. yani 150 nolu idle login olsamda 151 id nolu kullanıcının bilgilerini güncellemiş oluyorum.bunun güvenliğini nasıl sağlayabilirim? kolay gelsin.

        • Gökhan Gökalp Gökhan Gökalp dedi ki:

          Merhaba, buna benzer bir konuyu daha önce cevapladım token based authentication başlığı altında. Kullanıcı token’ı aldıktan sonra claims’e kullanıcının id’sini de eklemelisiniz. Diğer tüm işlemlerde update edilmek istenilen kullanıcı id si ile claims üzerinden gelen id’leri check edebilirsiniz. iyi günler dilerim.

          • Fatih dedi ki:

            Bu işime çok iyi yaradı gerçekten teşekkür ederim.Projemde json oluştururken classlar üzerinden değilde newtonsoft.json kullanarak string json oluşturuyorum.bunun mimari üzerinde dez avantajı varmıdır.birde classlar üzerinden json oluşturulurken header içerisine contenttype application/json charset=utf-8 otomatik ekleniyor fakat string olarak json oluşturduğumda
            contenttype text/plain olarak gözüküyor.her metoda aşağıdaki kodu ekleyerek sorunumu çözüyorum bunu global olarak değiştirebileceğim bi yöntem varmıdır.kolay gelsin.
            resp.Content.Headers.ContentType = new MediaTypeHeaderValue(“application/json”);

          • Gökhan Gökalp Gökhan Gökalp dedi ki:

            Merhaba class üzerinden json’ı nerede oluşturuyorsunuz da content type text/plain oluyor? call yaptığınız client nedir?

  2. Fatih dedi ki:

    Merhaba machine key oluşturmama rağmen The required anti-forgery cookie “__RequestVerificationToken” is not present. hatası alıyorum. machine keylerde sorun var desem iki server arası authorization yaparken sorun çıkarmıyor. yardımcı olursanız sevinirim.

  3. Mehmet Kara dedi ki:

    Merhaba,
    Tek sayfada iki tane form düşünürsek
    @Html.AntiForgeryToken() tagını iki formun arasınada mı yerleştirlemiliyiz?

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*