2010-03-15 7 views
1

Excusez mes connaissances limitées ici.ASP.NET MVC Alter Markup avant la sortie

Dans le passé, je l'ai utilisé la méthode de Steve Sanderson à encode HTML par défaut lors de l'exécution: http://blog.stevensanderson.com/2007/12/19/aspnet-mvc-prevent-xss-with-automatic-html-encoding/

J'ai besoin de modifier img src et a href attributs avant qu'ils ne soient craché dans le navigateur de l'utilisateur. Il existe une solution utilisant JavaScript, mais ce n'est pas idéal pour plusieurs raisons. Intercepter le compilateur n'est pas une option en raison de l'utilisation inutile de Response.Write pour du HTML trivial.

Y a-t-il quelque chose que je peux faire avec les modules HTTP ou le moteur de vue?

Des pensées?

MISE À JOUR: Je n'ai pas besoin d'encoder les attributs HTML, mais j'ai besoin de les changer.

Cheers.

Répondre

3

Utilisez un response filter. Fonctionne avec n'importe quel projet ASP.NET, y compris MVC. Cela devrait fonctionner même si vous utilisez un moteur de vue différent, car il intercepte à un niveau inférieur.

Voici un exemple réel que les bandes des espaces:

http://www.4guysfromrolla.com/articles/120308-1.aspx

Je l'ai utilisé cela avant de réécrire les liens avant d'envoyer au client, mais je ne peux pas trouver le code pour le moment.

+0

Meilleurs mots pour ce que je veux faire - "réécrire les liens". À votre santé! – youwhut

+0

Un filtre de réponse a été utilisé pour modifier le balisage avant qu'il ne soit craché. un module HTTP a été utilisé pour lancer le filtre de réponse. – youwhut

+0

Cool, content que ça a marché pour toi. – Chris

Questions connexes