Esiste una buona libreria Python mantenuta attiva per filtrare input dannosi come XSS?Libreria Python per filtraggio XSS?
risposta
La libreria Strip-o-Gram sembra molto carina. Non l'ho verificato correttamente, ma sembra che funzioni bene (ad esempio, puoi inserire nella whitelist i tag HTML che hai specificato, così come l'HTML che sfugge a qualsiasi cosa brutta).
Ecco il frammento di esempio di utilizzo, citato da quella pagina:
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)
Speranza che aiuta.
Non ci si può semplicemente fidare che gli aggressori inseriscano dei buoni tag. A meno che lo strip-o-gram non lavori su tag fortemente codificati (vedi la lista di rsnake: http://ha.ckers.org/xss.html) questo non funzionerà. – Mystic
Idem come diceva Mystic. Sembra che lo Strip-o-gram (il ragazzo sembra qualcosa che potresti ordinare per rallegrare un amico solitario) non è descritto come una difesa contro l'XSS. –
È possibile codificare facilmente XSS-defense in Python, vedere ad esempio http://code.activestate.com/recipes/496942/ per una parte di codice istruttiva e utilizzabile.
Se si utilizza un framework Web e un motore di template come Jinja2 esiste la possibilità che il motore di template o il framework abbia qualcosa di costruito proprio per quello.
C'è qualcosa nel modulo cgi che può aiutare a:
cgi.escape('malicious code here')
, si veda: http://docs.python.org/library/cgi.html#cgi.escape
anche Jinja2 fornisce fuga:
from jinja2 import utils
str(utils.escape('malicious code here'))
A partire da Python 3.4+, c'è 'html.escape' in stdlib! –
- 1. biblioteca filtraggio dello spam Bayesiano per Python
- 2. Librerie java Anti-XSS
- 3. <%: %> contro Microsoft la libreria anti XSS
- 4. prevenzione XSS in PHP
- 5. Alcuni chiarimenti riguardanti XSS
- 6. Libreria Python per Amazon MWS
- 7. libreria python per dividere video
- 8. libreria python per l'input dell'utente
- 9. python: libreria per suffissi generalizzati
- 10. Libreria come fakeweb per Python
- 11. Libreria SQL Parsing per Python
- 12. Filtraggio per autore in TortoiseHg
- 13. pulizia JSON per XSS prima della deserializzazione
- 14. Sanitizzazione dell'URL per impedire XSS in Rails
- 15. Angular2 Sanitize Form Input per attacchi XSS
- 16. PHP XSS Domanda/chiarimento
- 17. Prevenire attacco XSS
- 18. Prevenire DOM XSS
- 19. meteora codice XSS manomissioni
- 20. Prevenzione attacchi XSS
- 21. Esiste una libreria Python per gestire OWL?
- 22. Libreria Twitter per App Engine Python?
- 23. Qualsiasi libreria Python per accedere ai Quickbooks?
- 24. Libreria Python per gestione processi Linux
- 25. wrapper Python per libreria UDT C++
- 26. Libreria Python per visualizzazione mappe animate
- 27. Libreria MIDI cross-platform semplice per Python
- 28. Workflow incorporabile/Libreria BPM per Python?
- 29. Haskell - Come trasformare la somma della mappa (mappa (x :) xss) per mappare (x +) (somma mappa xss)
- 30. Decifrando questo attacco XSS
Bene tutto ciò che consente di rimuovere i tag HTML lo farà. Hai avuto requisiti speciali per le cose che vuoi mantenere? – SpliFF
Vorrei solo far notare che il commento sopra è molto ingenuo, se lo leggete, considerate anche la lettura: https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet come inizio. – mkoistinen