Je l'extrait de code suivant à mon avis:Est-il valide pour Html-Encode une URL
<div id="recommendFooter">
<% string urlRecommend = Url.Action("RecommendProduct", "Products", new { url = ViewContext.RequestContext.HttpContext.Request.Url.ToString() }); %>
<div>
<a href="<%= urlRecommend %>">This product is awesome!</a>
</div>
</div>
Cela devrait sortie Html comme ceci:
<div id="recommendFooter">
<div>
<a href="http://www.mysite.com/Products/RecommendProduct?url=http://www.mysite.com/products/productbykey/20" >This product is awesome!</a>
</div>
</div>
Je ne suis pas shure si je peux Html -Encode urlRecommend ou même la valeur ViewContext.RequestContext.HttpContext.Request.Url.ToString().
J'ai Request - Validation activé, mais pour cette partie, supposons que je ne l'ai pas activé. Peut et devrais-je coder Html ici?
EDIT 1
Je suppose que c'est ce que Guffa suggère:
<div id="recommendFooter">
<% string urlRecommend = Url.Action("RecommendProduct", "Products", new { url = Server.UrlEncode(ViewContext.RequestContext.HttpContext.Request.Url.ToString())});
string urlRecommendXssSave = Server.HtmlEncode(urlRecommend);
%>
<div>
<a href="<%= urlRecommendXssSave %>">This product is awesome!</a>
</div>
</div>
écrit que je n'ai pas besoin de HTML-Encode car il n'y a pas de caractères qui ont besoin d'échapper. Supposons qu'il y ait ces caractères: est-ce que j'utiliserais le logik dans mon édition? –
@MalcolmFrexner: Oui, ce serait correct. Vous pouvez également utiliser la balise '<%: %>' pour coder la chaîne en HTML. – Guffa