2010-12-07 30 views
4

Dans une application Web C#/ASP.NET MVC, je souhaite afficher les e-mails HTML reçus de sources non fiables. Est-ce que quelqu'un sait s'il existe des pratiques exemplaires connues (ou même des outils) à faire de façon «sécuritaire»? Pour autant que je sache, la plupart des webmails effectuent un prétraitement complet (désactivation des liens d'image, suppression des scripts, etc.).Comment afficher en toute sécurité les e-mails HTML dans une application Web?

Y a-t-il quelque chose de simple à faire mieux que simplement afficher l'email comme texte seulement?

Répondre

3

Joannes,

La meilleure chose à faire serait d'utiliser le service de listes blanches de protection Web de la bibliothèque pour filtrer HTML potentiellement malveillant: http://wpl.codeplex.com/

En ce qui concerne la mise en œuvre du comportement des clients plus sophistiqués, tels que le blocage des images de de sources inconnues, à moins que l'utilisateur l'autorise, vous voudrez peut-être essayer quelque chose mettre en œuvre le long de ces lignes:

  1. ne pas passer pleine <img src="{URI}" /> balises au client - à la place pression une image avec un attribut ID unique et l'avoir src à une icône par défaut "Impossible d'afficher l'image" à la place.
  2. Ajoutez un bouton ou un autre contrôle d'interface utilisateur dans lequel un utilisateur peut donner son consentement explicite pour afficher des images pour cette méthode.
  3. Créez une méthode d'action sur votre contrôleur d'affichage d'e-mails qui renvoie un JsonResult avec un dictionnaire contenant l'ID de l'image avec sa valeur src.
  4. Écrivez une méthode JavaScript qui appellera la méthode d'action et inversera les valeurs src appropriées en place après avoir reçu le JsonResult de votre méthode d'action.

Espérons que cela aide!