Jakie znacie narzędzia i sposoby na walkę z XSS?

0

Cześć,

Cross-Site Scripting to jedne z najczęstszych ataków na serwisy i strony napisane w .NET. Macie doświadczenia w jaki sposób najlepiej bronić się przed atakami tego typu?
Jak przetestować swój serwis pod względem bezpieczeństwa przed tymi atakami?
Czy polecacie narzędzia testujące lub zapobiegające XSS?

Z góry dziękuje :)

0

Najlepiej nie wyświetlać żadnego HTML'a. Ludzie wymyślają coraz to dziwniejsze rzeczy na obejście tego i sam się ostatnio zdziwiłem, jak zobacyzłem metodę obejścia tego, która polegała na zasadzie sklejania script tagu z jakiś "krzaczków". Przeglądarka to łyknęła, a plugin który stripował niedozwolone tagi tego nie wyłapał.

Nie wiem jak w .NET, ale u nas (PHP) mamy osobny server podłączony iframem i bez obaw możemy wyświetlać sobie tam html np. z wewnętrzengo sytemu mailingowego bo nawet gdyby ktoś chciał coś zrobić to i tak nie buchnie sesji użytkownika.

0

A czy ktoś korzystał z AntiXSS? Czy ta biblioteka skutecznie zabezpiecza stronę przed atakami XSS?

1

Wszystkie dane wysylaj i akceptuj tylko za pomoca POST, wszystkie jsony ktore zwraca Twoj serwer nie powinny zawierac jesli nie musza zadnych wrazliwych danych typu sesja.
Do kazdego jsonu najlepiej dokleic for(;;); ktory spowoduje ze gdy przypadkiem inna strona sprobuje to czytac w postaci <script src="linkdotwojegojsona"/> to sie zwiesi (zobacz jak np. robi to facebook czy google).
Jakiekolwiek linki w Twoim serwisie ktore wykonuja jakas akcje np. (strona/?logout) nie powinny dzialac jesli po prostu je wpiszesz w przegladarce (np. dodajesz jakis losowy numer to linku ktory jest wymagany, lub wymagasz dowolnej rzeczy wyslanej przez POST).
Jesli Twoja strona ma jakiekolwiek dane ktore wyswietlasz od uzytkownika np. post z forum - nie powinny wykonywac zadnych requestow - przykladem jest dodawanie obrazka z innej strony - jesli uzytkownik wpisze <img src="innastrona/obr.jpg" /> nie powinno sie nic wyswietlic dlatego ze ktos inny moglby by wpisac <img src="innastrona.pl/wyloguj" />

0

Naczytałem się sporo o encoderach, czy najnowsza wersja ASP.NET MVC zapewnia domyślne encodowanie dla inputów?

1

Gdyby ktoś miał kiedyś konieczność zmierzenia się z zabezpieczeniem serwisu/strony zaimplementowanej w ASP.NET MVC to polecam ten poradnik, który krok po kroku opisuje w zależności od trzech warstw (aplikacji, serwera i klienta) jak ochronić swoją aplikację przed atakami typu XSS.

Ataki XSS są jednymi z najpopularniejszych jeżeli chodzi o .NET!

Link do artykułu:
http://lockmedown.com/preventing-xss-in-asp-net-made-easy/

1 użytkowników online, w tym zalogowanych: 0, gości: 1