Dziś w komentarzu ukash napisał:
(...) Poza tym ten przykład już nie działa - napis javascript i tak jest wychwytywany przez parser.
Rzeczywiście, parser zaczął działać lepiej, niż działał wcześniej. Dlaczego? Dlatego, że home.pl zmieniło wykorzystywaną wersję Pythona z 2.5 na 2.6. A w dokumentacji do HTMLParser z wersji 2.7 można znaleźć następujący fragment:
Changed in version 2.6: All entity references from htmlentitydefs are now replaced in the attribute values.
Oznacza to mniej więcej tyle, że mój przykład będzie zawierał o jedną podatność (no dobrze, to jest więcej niż jedna podatność, bardziej jakaś klasa podatności) mniej jeśli będzie uruchomiony z wykorzystaniem Python 2.6 lub Python 2.7. Myślę, że jest to doskonały przykład jak pozornie niewielka zmiana w środowisku może otworzyć/zamknąć wielką dziurę w aplikacji.
Obecnie skrypt powinien działać tak samo, jak wcześniej. Zmiany między HTMLParser w wersji 2.5 i 2.6 sprowadzają się do zmiany metody unescape, przynajmniej z tego, co na szybko sprawdziłem. Po prostu przeciążyłem nową wersję unescape przy pomocy "wersji oryginalnej", czyli tej pochodzącej z 2.5.
Przez pewien czas używałem dodatkowo wiki, bo na blogu pewnych rzeczy robić nie mogłem. Gdy blog przeszedł całkiem pod moją kontrolę, wiki stało się zbędne. Powoli miałem wygaszać ten adres, ale wygląda na to, że home.pl mi w tym pomógł. Mam wrażenie, że
Przesłany: Sep 26, 21:12
Na spotkaniu SPINu mówiłem między innymi o tym, że błędy związane z bezpieczeństwem powinny być w bazie błędów oznaczane tak, by było wiadomo, że jest to błąd bezpieczeństwa oraz powinny zawierać informację o powodzie tego błędu (w sensie root cause). Dzi
Przesłany: Dec 03, 20:16