none
Razor Otomatik Encode ve AntiXss RRS feed

  • Soru

  • İlk etapda anlam veremedim fakat bir kaç denemeden sonra razor viewengine içerisinde yazmış olduğum zararlı kodların otomatik olarak encode edildiğini farkettim. 

    Ben herhangi bir encode ya da filtreleme yapmadığım halde razor kendisi html kısımda gerekli encode işlemini yapıyor. Ve normal encode işlemlerinde olduğu gibi de sayfa içinde encode edilmiş verinin html halini yansıtıyor.
    Fakat  burada dikkatimi çeken şöyle bir durum var. Ben zararlı kodları Controller içerisinde manuel yazarak değişkene atadığım durum ile sayfa içerisinde bir textbox'dan Controller içine gönderip sonra view sayfasına gönderme arasında bir var.
    Bu fark şöyle:
    Şimdi eğer ben controller içerisinde manuel olarak zararlı kodu yazıp view içerisinde bunu gösterirsem razor kendisi bunu encode ediyor ve sayfa içinde html halini gösteriyor. Eğer ben bu zararlı kodu Html.Raw içerisinde gösterirsem ilgili zararlı kod çalışıyor. 
    Ama ben zararlı kodu manuel olarak değilde bir textbox içerisinden alıp Controller'da bunu bir değişkene eşitleyip sonrasında view içinde gösterirsem aynen manuel yazma durumunda olduğu gibi zararlı kodları encode ediyor ve sayfa içinde bu encode edilmiş kodların html halini gösteriyor. Fakat bu textboxdan dinamik olarak aldığım bu zararlı kodları Html.Raw ile göstermek istediğimde sayfanın kaynak kodunda bunu olduğu gibi yazıyor ama sayfa içerisinde yansıtırken boş olarak gösteriyor ve zararlı kod çaışmıyor.Birinci sorum bu durumun sebebi nedir?

    İkinci  sorum: Şimdi ben projemde AntiXssLibrary kullanmayı düşünüyordum. Acaba Razorun bu encode ile gerçekleştirdiği default koruma beni bütün xss tabanlı saldırılardan korur mu? Eğer korursa AntiXssLibrary kullanmanın bir anlamı var mı?

    Son olarak ben AntiXssLibrary ile Microsoft.Security.Application.AntiXss.HtmlEncode() metodunu kullandığım zaman Visual Studio bana bu yöntemin önerilmediğini ve Microsoft.Security.Application.Encoder.HtmlEncode() metodunu kullanmamın gerektiğine dair uyarı şeklinde hatırlatma yapıyor. AntiXssLibrary'yi tavsiye etmeyişinin sebebi ne olabilir.


    face your fears live your dreams


    • Düzenleyen A.r.e.s 15 Eylül 2012 Cumartesi 01:47 terim düzeltme
    • Değiştirilmiş Tür Ali Rıza İnceoğlu 21 Eylül 2012 Cuma 13:22
    • Değiştirilmiş Tür A.r.e.s 1 Ekim 2012 Pazartesi 02:14
    15 Eylül 2012 Cumartesi 01:05

Tüm Yanıtlar

  • Arkadaşlar sorumun birinci kısmı ile uğraşmak sıkıcı ve keyifsiz gelmiş olabilir. Acaba ikinci kısım hakkında bir fikri olan var mı?

    İkinci sorum: Şimdi ben projemde AntiXssLibrary kullanmayı düşünüyordum. Acaba Razorun bu encode ile gerçekleştirdiği default koruma beni bütün xss tabanlı saldırılardan korur mu? Eğer korursa AntiXssLibrary kullanmanın bir anlamı var mı?

    Son olarak ben AntiXssLibrary ile Microsoft.Security.Application.AntiXss.HtmlEncode() metodunu kullandığım zaman Visual Studio bana bu yöntemin önerilmediğini ve Microsoft.Security.Application.Encoder.HtmlEncode() metodunu kullanmamın gerektiğine dair uyarı şeklinde hatırlatma yapıyor. AntiXssLibrary'yi tavsiye etmeyişinin sebebi ne olabilir.

    face your fears live your dreams

    1 Ekim 2012 Pazartesi 02:13