Domanda

Su un sito Web se ho un modulo in cui l'utente può inserire del testo e quindi una pagina che mostra ciò che l'utente ha inserito, so che HTML codificare i valori inseriti dall'utente per prevenire attacchi di scripting. Se il modulo stesse inviando e-mail html presumo che farei lo stesso, ma ci sono casi speciali per e-mail e i client di posta eseguiranno gli script iniettati nell'e-mail?

È stato utile?

Soluzione

Dovresti assolutamente codificare HTML prima di assegnare il contenuto pubblicato al corpo HTML di un'e-mail. Il tuo codice dovrebbe già rifiutare contenuti come '& Lt; script & Gt;' non valido, non solo nel caso di un'e-mail ma in tutti i casi.

Non ci sono altre considerazioni di cui devi preoccuparti.

Altri suggerimenti

Mentre sarebbe comunque una buona idea rimuovere <script> tag dal documento prima di inviarlo, penso che la minaccia sia bassa. Credo che sarebbe difficile trovare un client di posta elettronica (ancora ricevendo supporto) che non rimuova gli script prima del rendering di un'e-mail.

Credo che contrassegnando il corpo dell'email come text / plain si eviterebbero attacchi javascript e / o html (ma non mi fiderei delle prospettive su ciò che suggeriscono le intestazioni).

Dovresti usare una libreria SMTP che prende l'onere (e potenziali bug) che sono causati da escape duplicati o mancanti. Quindi, utilizzare solo e-mail in testo normale (testo / semplice).

Per evitare problemi di sicurezza con i client di posta buggy, è anche possibile inviare una posta quasi vuota e il testo come allegato (estensione file!! quot; .txt " ;, content-type " text / plain quot &;).

Consiglio vivamente di utilizzare una soluzione esistente e testata per l'invio di mail. Se stai passando l'input dell'utente, diciamo, alla funzione mail () di PHP - anche con la codifica HTML - è possibile che un utente malintenzionato crei un & Quot; body & Quot; che in realtà contiene le intestazioni per creare un messaggio in più parti.

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