Atak Cross-Site Scripting (XSS) w ASP.NET MVC

Dołączenie szkodliwego kodu do treści wpisywanych przez użytkownika.


Cross-Site-Scripting polega na osadzeniu w treści strony niepożądanego kodu (najczęściej JS). Aby uchronić aplikacje od tego typu ataków należy śledzić treści wprowadzane przez użytkowników. W polach tekstowych wśród tekstu mogą znaleźć się również kody JS, które po zapisie do bazy danych i odczycie przez innego użytkownika zostają uruchomione. Aby kod został uruchomiony musi być traktowany, jako kod HTML. ASP.NET MVC ma domyślnie zaimplementowaną ochronę przed XSS, nie ma możliwości podawania kodu HTML jako tekst. Aby umożliwić użytkownikom dodanie kodu HTML należy użyć atrybutu [AllowHTML] jednak jest to bardzo ryzykowne. Aby zapobiec atakom należy zainstalować rozszerzenie AntiXSS poprzez platformę NuGet. AntiXSS nawet, jeśli kod zostanie przekazany do bazy danych to analizuje kod wynikowy przesyłany do klienta. Jeśli dany tekst zawiera złośliwy kod to automatycznie usuwa szkodliwą cześć. Ponieważ złośliwy kod nie jest wysłany do klienta, to nie ma możliwości, aby się wykonał.
Komentarze facebook (polub nasz profil na FB aby je zobaczyć):