2010-08-30 20 views
9

Szukam biblioteki Java, która może zapewnić ochronę przed XSS attacks. Piszę serwer i chciałbym sprawdzić, czy dane wejściowe mojego użytkownika nie zawierają złośliwego javascript.Biblioteki java Anti-XSS

Która biblioteka byś polecała?

+0

możliwe duplikat [Jak „oczyszczono” kodu HTML, aby zapobiec atakom XSS w Java lub JSP?] (http://stackoverflow.com/questions/3587199/how-to-purify-html-code-to-prevent-xss-attacks-in-java-or-jsp) i [Najlepsze regex do przechwytywania XSS (Cross-site Scripting) atak (w Javie)?] (http://stackoverflow.com/questions/24723/best-regex-to-catch-xss-cross-site-scripting-attack-in-java) – BalusC

+0

@BalusC - prawda. – ripper234

Odpowiedz

6

Powinieneś użyć AntiSamy. (That's what I did)

+0

Myślę, że AntiSamy nie zapewnia funkcjonalności wykrywania w przypadku wykonywania XSS. Czy możesz zaproponować bibliotekę, która pomoże wykryć to samo? – Siddharth

+1

XSS nie może być rzeczywiście wykryty, dopóki nie zostanie poprawnie wykonany w kontekście przeglądarki. Jednak antisamy generuje listę błędów, dzięki czemu można zobaczyć powody, dla których dany DOM został odrzucony. Na tym etapie jednak od 2013 r. Antysemia nie została dotknięta, więc prawdopodobnie i tak nie należy jej używać. – avgvstvs

1

Jeśli chcesz zaakceptować HTML od użytkowników, to AntiSamy lub coś w stylu jsoup ma sens. Jednakże, jeśli chcesz po prostu dobry zestaw uciekinierów, można korzystać z biblioteki takie jak CSL

Mamy Ściągawka online, który pokazuje, jak używać go w wielu kontekstach HTML (aka HTML constructs):

+0

Nie należy używać Jsoup do celów sprawdzania poprawności zabezpieczeń. Projekt Jsoup polega na "naprawianiu" nieprawidłowego kodu HTML, a wiele ataków XSS jest celowo nieważnych ... więc Jsoup "naprawia" je, a twoje sprawdzanie poprawności może oznaczać je jako dobre. – avgvstvs

2

Wielki post, jak zapobiec atakom XSS w różnych sytuacjach, jest publikowany w następującym zestawie: Avoid XSS and allow some html tags with JavaScript

+0

Byłbym z dala od używania javascript do tego - większość ataków w tych dniach opiera się na DOM, a javascript ma technikę zwaną "monkeypatching", która umożliwia atakującemu przejęcie kontroli nad dowolną funkcją po stronie klienta. – avgvstvs

+0

@avgvstvs, jeśli osoba atakująca uzyskała już dostęp do umiejętności poprawiania małp, to może po prostu zrobić wszystko, co będzie w stanie zrobić przez XSS. –

+0

@MatthijsWessels moim celem jest to, że jako programista WWW, front end jest po prostu * złym * miejscem do wdrożenia * jakiegokolwiek * rodzaju prewencji XSS, ponieważ serwer ma zerową kontrolę nad tym, co dzieje się w przeglądarce. Przeglądarka jest niezaufana, przez cały czas. – avgvstvs

0

Użyłem projektu dezynfekcji HTML OWASP z dużym sukcesem.

https://www.owasp.org/index.php/OWASP_Java_HTML_Sanitizer_Project

Policies można zdefiniować (lub predefiniowanych polityka może być używany), które pozwalają kontrolować, jakie typy elementów HTML są dozwolone na strunie, która została zatwierdzona/odkażane. Można użyć detektora, gdy HTML jest poddawany sanityzacji w celu ustalenia, które elementy są odrzucane, co daje elastyczność w zakresie sposobu, w jaki można je przekazać klientowi. Poza łatwą implementacją, podoba mi się również ta biblioteka, ponieważ jest ona produkowana i utrzymywana przez OWASP, długotrwałą organizację, której celem jest bezpieczeństwo sieci.

Powiązane problemy