By zamknąć temat przykładu dotyczącego wykorzystania na stronie danych z różnych źródeł jedna krótka uwaga. Teoretycznie "prawidłowo" wstawiony payload XSS powinien wyglądać tak:
<img src="niemamnie" onerror="alert(/XSS/)">
Jak to zwykle bywa teoria rozmija się z praktyką. Okazuje się, że większość (wszystkie?) przeglądarek jest dość liberalna i równie ochoczo zinterpretują taki payload:
<img src="niemamnie" onerror="alert(/XSS/)"
Każdy może sobie to sprawdzić tutaj: http://bootcamp.threats.pl/lesson09/. Istnieją co prawda dodatkowe różnice między przeglądarkami w przypadku, gdy wspomniany kod HTML jest wstawiany poprzez innerHTML, ale to niech już każdy zainteresowany sprawdzi sobie we własnym zakresie :)

