Ho la situazione comune in cui ho input utente che utilizza un sottoinsieme di HTML (input con tinyMCE). Ho bisogno di avere una protezione lato server contro gli attacchi XSS e sto cercando uno strumento ben collaudato che le persone stanno usando per fare questo. Sul lato PHP sto vedendo molte librerie come HTMLPurifier che fanno il lavoro, ma non riesco a trovare nulla in .NET.Whitelist HTML .NET (anti-xss/Cross Site Scripting)
praticamente sto cercando per una libreria per filtrare verso il basso per una whitelist di tag, attributi questi tag, e fa la cosa giusta con "difficile" attributi come un: href e img: src
I' Ho visto il post di Jeff Atwood allo http://refactormycode.com/codes/333-sanitize-html, ma non so quanto sia aggiornato. Ha alcuna influenza su ciò che il sito sta attualmente utilizzando? E in ogni caso non sono sicuro di sentirmi a mio agio con quella strategia di cercare di dare un input valido.
questo post del blog delinea quello che sembra essere una strategia molto più convincente:
Questo metodo è quello di analizzare in realtà il codice HTML in un DOM, verificare che, quindi rigenerare HTML valido da esso. Se l'analisi HTML è in grado di gestire l'HTML malformato in modo sensato, allora è grandioso. In caso contrario, non è un grosso problema: posso richiedere un HTML ben formato poiché gli utenti dovrebbero utilizzare l'editor minuscolo MCE. In entrambi i casi sto riscrivendo quello che so essere un HTML sicuro e ben formato.
Il problema è che è solo una descrizione, senza un collegamento a qualsiasi libreria che esegue effettivamente tale algoritmo.
Esiste una tale biblioteca? In caso contrario, quale sarebbe un buon motore di analisi HTML .NET? E quali espressioni regolari dovrebbero essere utilizzate per eseguire una validazione extra a: href, img: src? Mi manca qualcos'altro di importante qui?
Non voglio reimplementare una ruota buggy qui. Sicuramente ci sono alcune librerie comunemente usate là fuori. Qualche idea?
Il pacchetto di agilità è quello che ho finito con l'uso. Sembra funzionare bene – Clyde