2012-02-03 18 views
10

Chcę uciec dla XSS w kontekście html i do tej pory traktuję znaki <,> i " Najwyraźniej zaleca się także ucieczkę od znaku ampersand, ale dlaczego? (Inne niż dla zachowania ważności html , załóżmy, że to nie jest problem)Skrypty Cross Site (XSS): Czy muszę uciec z ampersand?

Więc pytam: Kiedy mogę uciec <,> i ", czy ktoś może pokazać, jak ampersand może nadal zezwalać na atak XSS w kontekście html?

Pozdrawiam!

Odpowiedz

6

Naprawdę powinieneś rzucić okiem na karcie OWASP XSS Prevention Cheat Sheet.

Powinieneś uciec &, ponieważ można go użyć do ominięcia innych zabezpieczeń. Rozważmy następujący kod:.

<button onclick="confirm('Do you really want to delete <%= data_from_user; %> ?'">Delete</button> 

do obrony przed XSS wewnątrz obsługi zdarzenia onclick, deweloper ucieka”,” < i> w data_from_user i myśli, wszystko jest ok Problem polega na tym, że jeśli rodzaje atakujący &#39; który przechodzi Cytowanie, ale kończy się pozwalając atakującemu uruchomić JavaScript

przykład tutaj:.. http://erlend.oftedal.no/blog/?blogid=124

+0

Interesujący przykład okrzyki Co próbowałem.! było wstrzyknięcie to w HTML: < script type = „text/javascript” > Które nie zostanie wykonana, howerver wyświetlany jako „

1

użyć & aby złączyć params w URL:

Odzwierciedlenie XXS:
kod Script jest wstrzykiwany w adresie URL, które strona internetowa odzwierciedla ofiarom

http://mybank.com/page?message= < script src = „ evil _script.js "/>

+2

Down-wyborca ​​powinien wyjaśnić swój pogląd zgadzam się z tą odpowiedzią +1 – tusar