Czy istnieje dobra, aktywnie utrzymywana biblioteka Pythona dostępna do filtrowania złośliwych danych wejściowych, takich jak XSS?Biblioteka Pythona do filtrowania XSS?
Odpowiedz
Biblioteka Strip-o-Gram wygląda całkiem nieźle. Nie sprawdziłem go poprawnie, ale wygląda na to, że robi to dobrze (tzn. Może wstawiać znaczniki HTML na białej liście, a także wymazywać wszystko co nieprzyjemne).
Oto urywek przykład użycia, cytat z tej strony:
from stripogram import html2text, html2safehtml
mylumpofdodgyhtml # a lump of dodgy html ;-)
# Only allow <b>, <a>, <i>, <br>, and <p> tags
mylumpofcoolcleancollectedhtml = html2safehtml(mylumpofdodgyhtml,valid_tags=("b", "a", "i", "br", "p"))
# Don't process <img> tags, just strip them out. Use an indent of 4 spaces
# and a page that's 80 characters wide.
mylumpoftext = html2text(mylumpofcoolcleancollectedhtml,ignore_tags=("img",),indent_width=4,page_width=80)
nadzieję, że pomoże.
Nie można po prostu uwierzyć, że atakujący umieścili ładne tagi. O ile strip-o-gram nie działa na mocno zakodowanych znacznikach (patrz lista rsnake: http://ha.ckers.org/xss.html), to nie zadziała. – Mystic
Tak samo, jak powiedział Mystic. Wydaje się, że Strip-o-gram (chłopiec brzmi jak coś, co możesz rozweselić samotnego przyjaciela) nie jest opisany jako obrona przed XSS. –
Możesz łatwo kodować XSS-defence w Pythonie, patrz na przykład http://code.activestate.com/recipes/496942/, aby uzyskać pouczający i użyteczny fragment kodu.
Jeśli używasz platformy internetowej i silnika szablonów, takiego jak Jinja2, istnieje szansa, że silnik szablonów lub framework ma coś wbudowanego.
Jest coś w module cgi, które mogą pomóc:
cgi.escape('malicious code here')
patrz: http://docs.python.org/library/cgi.html#cgi.escape
także Jinja2 zapewnia ucieczki:
from jinja2 import utils
str(utils.escape('malicious code here'))
Zaczynając od Pythona 3.4+, istnieje 'html.escape' w stdlib! –
- 1. Funkcja filtrowania XSS w PHP
- 2. Biblioteka Pythona do dzielenia wideo
- 3. Biblioteka Pythona do parsowania regex do AST?
- 4. Biblioteka konfiguracji Pythona
- 5. Biblioteka Pythona do generowania plików VCF?
- 6. Czy istnieje biblioteka Pythona do obsługi OWL?
- 7. Biblioteka Pythona do zarządzania procesami Linux
- 8. Czysta biblioteka Pythona do generowania identyfikatorów?
- 9. Biblioteka Pythona do generowania wyrażeń regularnych
- 10. Biblioteka Amazon API dla Pythona?
- 11. Biblioteka klienta Pythona dla WebDAV
- 12. MS Access biblioteka dla Pythona
- 13. Biblioteki java Anti-XSS
- 14. Biblioteka analizy SQL dla Pythona
- 15. kolekcje do filtrowania lambdaj
- 16. Biblioteka do czytania Exif
- 17. Wyrażenie Linq do filtrowania formcollection
- 18. AWK do filtrowania plików CSV
- 19. biblioteka Pythona do tworzenia pliku wideo z obrazów
- 20. Czy istnieje biblioteka testowa podobna do Spocka dla Pythona
- 21. Biblioteka do kodowania i dekodowania kodów QR przy użyciu Pythona
- 22. Jaka jest najlepsza biblioteka open source Pythona do rysowania wykresów?
- 23. Pythona filtrowania listy tylko pozostawiają obiekty występujące po
- 24. Czy standardowa biblioteka Pythona jest naprawdę standardowa?
- 25. Czy ta funkcja wystarcza do wykrycia xss?
- 26. Odszyfrowanie tego ataku XSS
- 27. Biblioteka do czytania zrzutu MySQL?
- 28. jak używać FFT do filtrowania szumu 50Hz z tablicy danych?
- 29. adnotacja do filtrowania wyników asocjacji @OneToMany
- 30. Konfiguracja nginx do filtrowania powodzi http
No nic, że usuwa tagi html zrobi. Czy masz specjalne wymagania dotyczące rzeczy, które chcesz zachować? – SpliFF
Chciałbym zaznaczyć, że powyższy komentarz jest bardzo naiwny, jeśli to czytasz, rozważ także przeczytanie: https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet jako początek. – mkoistinen