folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Asp.Net Mvc De Xss E Karşı Nasıl Korunuyoruz?



Asp.Net Mvc De Xss E Karşı Nasıl Korunuyoruz?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    Asp.net mvc projesinde kullanıcıdan bir jquery editörü ile (summernote vs gibi.) girdi alıyorum.Veritabanına kaydediyorum.Sonra bunu ekrana basarken adam <script> falan yazdıysa yada başka zararlı ne yazabilir bilmiyorum.Bunun önlemini nasıl alıyoruz? Biraz araştırdım. 

    http://www.c-sharpcorner.com/UploadFile/abhikumarvatsa/avoiding-cross-site-scripting-xss-attacks-with-antixss-in/    burda adam anlatmıs bunu yapınca projemize 2 adet assembly ekleniyor. AntiXssLibrary

    ve HtmlSanizationLibrary diye ancak sonra farkettimki bu yazı biraz eski adamlar zaten .net e AntiXssLibrary yi eklemişler. Yani bu linkte yazan yine microsoftun çıkarmış olduğu antixsslibrary System.Web.Security.AntiXss.AntiXssEncoder altında .net e eklenmiş.Adam örnekte HtmlSanizationLibrary içindeki Sanitize sınıfının GetSafeHtmlFragment metodunu cagırmıs.Ama bu Sanitize sınıfının GetSafeHtmlFragment metodunun karşılıgını .net içinde bulamadım.  Şimdi ben veritabanından ekrana verileri basarken ne şekilde basmalıyım? HttpUtility.HtmlEncode , AntiXssEncoder.HtmlEncode .net içindede 1 den fazla htmlencode metodu var. Kafam karıştı biraz , aydınlatırsanız sevinirim.


    lrny.app
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Hiç karşılaşmadım açıkcası.

     

    script tagı olmadan dbye kaydettir. çağırırken de script içerisinde ekrana basarsın.

     

    ontedi tarafından 03/May/16 15:23 tarihinde düzenlenmiştir

    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    işte script tagı olmadan nasıl db ye kayıt ettiricem onu merak ettim adam gitti <p><script>alert('selam')</script></p> yazdı mesela editöre(şuan bende yazmış oldum mesela) ben bunu c# tarafında string sınıfının replace gibi metodları ile kendimmi kontrol edeyim? Yoksa bunun hazırı var mıdır? Hazırı var zaten verdiğim linkte ama ben o linke gerek olmadan .net içinde hazır bişey var mı onu bulamadım.


    lrny.app
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SSH
    SSH's avatar
    Kayıt Tarihi: 21/Temmuz/2005
    Erkek
    Hannibal_King bunu yazdı

    işte script tagı olmadan nasıl db ye kayıt ettiricem onu merak ettim adam gitti 

    // <!CDATA 'selam' // >

    yazdı mesela editöre(şuan bende yazmış oldum mesela) ben bunu c# tarafında string sınıfının replace gibi metodları ile kendimmi kontrol edeyim? Yoksa bunun hazırı var mıdır? Hazırı var zaten verdiğim linkte ama ben o linke gerek olmadan .net içinde hazır bişey var mı onu bulamadım.

    Aynen dediğin gibi bir method ile replace ettir.

     public static string HTMLTagTemizle(this string icerik)
    
        {
    
            while (icerik.IndexOf(">") > -1)
    
            {
    
                icerik= icerik.Replace(icerik.Substring(icerik.IndexOf("<"), icerik.IndexOf(">") - icerik.IndexOf("<") + 1), "");
    
            }
    
            icerik= icerik.Replace("\"", "");
    
    
    
            return icerik;
    
        }

     

     

    SSH tarafından 03/May/16 16:06 tarihinde düzenlenmiştir

    sırıtma la.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    Hocam default olarak asp.net de xss hatası üretebilecek bilgiler postda filtreleniyor.


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    Şimdi baktım jquery editörü otomatik olarak < ve > karakterlerini değiştiriyor ancak adam gider unicode olarak yazarsa yine problem oluyor \u003c şeklinde de yazabilir.Muhtemelen 1.postta verdiğim linkteki fonksiyonu kullanıcam güzel çalışıyordu o ama devam ediyorum araştırmaya konu hakkında bilgiye ihtiyacım var hala.


    lrny.app
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    Şu anki sınıf bu (4.5 için olmalı). https://msdn.microsoft.com/en-us/library/system.web.security.antixss.antixssencoder%28v=vs.110%29.aspx

    Eğer kullanıcıdan sadece düz yazı alacaksan unicode beyaz liste işlemini de kullanabilirsin.


    Olaylara karışmayın!
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    Kullanıcıdan aldığım girdide html tagları css ler falan olacak bold italic falan yani adam editörden aynı wordpress teki gibi makale giricek.Terror hocamın dediği gibi default olarak asp.net engellediği için html taglarını falan action metodun üzerine validateInput="false" attribute unu yazdım. 

    Şuanki durumda kullanıcı istediği script i veritabanına kaydedebiliyor çünkü validateinput = false olarak ayarlı.Ben de bunu veritabanından çekince nasıl bastıracağım?  System.Web.Security.AntiXss.AntiXssEncoder.HtmlEncode bunu kullanıyorum bu sefer bold <b> diye basıyor html de yorumlanmıyo.


    lrny.app
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    Default ayarlarda bizim html yada script taglerını girmemize engel olan yapının tamamı AntiXssLibrary sanırım. Ben controller içinde bulunan action metodlara attribute olarak validateInput="false" dediğim zaman galiba bu yapıyı devre dışı bırakmış oluyorum. Bu noktadan sonrada html taglarına izin verip script taglerini engellemek için html sanitizer gerekiyor sanırım.

    Ama validateInput="false" demeyip kullanıcı girdilerindeki <  >  gibi karakterleri client tarafında asp.net mvc nin izin vereceği formata dönüştürmek daha mantıklı sanırım. Nury nin yazdığı html encode ile o şekilde yapmak gerekicek sanırım.Henuz denemedim ama bir de bu yaklaşımı deneyeyim.

     


    lrny.app
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nessaj
    nessaj's avatar
    Kayıt Tarihi: 03/Mayıs/2010
    Erkek

    Mobil olduğum için uzun uzun yazmaya üşeniyorum ancak yukarıda yazılanların hiç biri tam çözüm değil. 

    Referans olarak owasp'ın prevent xss dökümanlarını inceleyin. Owasp xss Cheat sheet çok uzun, engellemeyi öğrenmek için onu okumaya gerek yok.

     

    nessaj tarafından 03/May/16 20:29 tarihinde düzenlenmiştir
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet bu dökümanı diyosun sanırım hocam. Yine mobilde olmadığın zaman daha ayrıntılı paylaşım yaparsan sevinirim.


    lrny.app
Toplam Hit: 1375 Toplam Mesaj: 12
asp.net mvc xss