Korzystając z ciekawego zbiegu okoliczności, czyli XSS w YouTube, zebrałem się w końcu w sobie i udostępniłem rozwiązania konkursu przygotowanego przeze mnie przed czerwcowym spotkaniem OWASP. Udostępniam również kod parsera HTML, który w tym przykładzie został wykorzystany.
Zainteresowanych zapraszam:
- zadanie Oczyszczanie HTML jest trudne,
- kod parsera HTML wykorzystanego w zadaniu,
- przykładowe rozwiązania nadesłane w ramach mini-konkursu,
W ostatnim kodzie w przykładzie I jest użyta składnia, której nie rozumiem. Możesz podać jakiś link/nazwę składni do poczytania?
Poza tym ten przykład już nie działa - napis javascript i tak jest wychwytywany przez parser.
Tu jest dużo przykładów dość nietypowych konstrukcji.
Druga część komentarza - dzięki za informację. Napis javascript jest wychwytywany przez parser, ale prawdopodobnie zmieniło się coś w home.pl, bo sam skrypt nie był modyfikowany. Wcześniej do skryptu trafiały znaki w formie zakodowanej i w tym konkretnym przypadku, o którym piszesz, parser nie wyłapywał javascript, bo tego napisu nie było tylko javascrip i znak zakodowany. Muszę popatrzeć dokładniej co się zmieniło... Jak ja lubię nie mieć nad czymś kontroli
EDIT: Poprawka - problem jest gdzie indziej. Wygląda na to, że zmieniło się coś z interpreterem Pythona dostępnym na home.pl. Obecnie atrybut jest odkodowany, wcześniej był przetwarzany dokładnie w tej postaci, w jakiej został przekazany. Muszę wyśledzić z czego ta zmiana wynika.