Domanda

Come posso rendere sicuro l'HTML dall'e-mail per visualizzarlo nel browser Web con Python?

Eventuali riferimenti esterni non devono essere seguiti quando visualizzati. In altre parole, tutto il contenuto visualizzato dovrebbe provenire dall'e-mail e nulla da Internet.

Oltre alle e-mail di spam dovrebbero essere visualizzate il più vicino possibile come previsto dallo scrittore.

Vorrei evitare di scrivere questo codice da solo.

Sono accettabili anche soluzioni che richiedono l'ultima versione del browser (firefox).

È stato utile?

Soluzione

html5lib contiene un disinfettante HTML + CSS. Attualmente consente troppo, ma non dovrebbe essere troppo difficile modificarlo in modo che corrisponda al caso d'uso.

Trovato da qui .

Altri suggerimenti

Non sono del tutto chiaro con cosa intendi esattamente con " safe " ;. È un argomento piuttosto grande ... ma, per quello che vale:

A mio avviso, il strippaggio del parser dal ricettario di ActiveState è uno dei più facili soluzioni. Puoi praticamente copiare / incollare la classe e iniziare a usarla.

Dai un'occhiata anche ai commenti. L'ultimo afferma che non funziona più, ma ho anche questo in esecuzione in un'applicazione da qualche parte e funziona bene. Dal lavoro, non ho accesso a quella casella, quindi dovrò cercarla durante il fine settimana.

Usa il modulo HTMLparser o installa BeautifulSoup e usa quelli per analizzare l'HTML e disabilitare o rimuovere i tag. Questo lascerà qualunque testo del link fosse presente, ma non verrà evidenziato e non sarà cliccabile, poiché lo stai visualizzando con un componente browser web.

Puoi chiarire cosa è stato fatto sostituendo <A></A> con <SPAN></SPAN> e modificando la decorazione del testo per mostrare dove si trovava il collegamento. Forse una tonalità di blu diversa dal normale e un trattino basso tratteggiato per indicare la rottura. In questo modo sei un po 'più vicino a visualizzarlo come previsto senza effettivamente indurre in errore le persone a fare clic su qualcosa che non è selezionabile. Potresti anche aggiungere un passaggio del mouse in Javascript o CSS puro che apre una descrizione che spiega che i collegamenti sono stati disabilitati per motivi di sicurezza.

Cose simili potrebbero essere fatte con i tag <IMG></IMG> inclusa la loro sostituzione con un rettangolo vuoto per assicurarsi che il layout della pagina sia vicino all'originale.

Ho fatto cose del genere con Beautiful Soup , ma HTMLparser è incluso in Pitone. Nei vecchi distributori Python, c'era un htmllib che ora è deprecato. Poiché l'HTML in un messaggio di posta elettronica potrebbe non essere del tutto corretto, utilizzare Beautiful Soup 3.0.7a, che è meglio nel dare un senso al codice HTML danneggiato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top