Ich habe ein Textfeld in einer ASP.NET MVC-Anwendung, wo der Benutzer Text eingeben kann. Wenn ich den Text dem Benutzer zeige, verwende ich Html.Encode
, um böswillige Eingaben zu verhindern. Das Problem ist, dass der Benutzer Spanisch eingeben kann und vielleicht gibt er año
und die Encode
wandelt das in año
um. Wie kann ich das verhindern?Wie kann ich beim Codieren von HTML-Eingaben für die Sicherheit die Codierung internationaler Zeichen wie "Ñ oder ñ" vermeiden?
EDIT: In der generierten HTML, sehe ich:
<a href="a1-'a1'-Cama&#241;o?sort=estadisticas#241;o">a1 'a1' Cama&#241;o</a>
Später in der Seite, die ich dieses haben, und dieses Mal die Anzeige korrekt ist:
<b>a1 'a1' Camaño</b>
Die erste wird diese erzeugt übrigens:
<%= Html.RouteLink(Html.Encode(Model.NAME), ...... %>
und die zweite wie folgt aus:
<%= Html.Encode(Model.NAME)%>
Also meine Vermutung ist, dass das Problem mit der Html.RouteLink
ist.
Ist Ihre Beschwerde, dass es internationale Zeichen codiert, oder dass der Benutzer codierte Zeichen und nicht die Zeichen sehen, die sie eingegeben haben? Wenn es Letzteres ist, dann ist die "zweimal zufällig kodieren" Antwort richtig. Wenn nicht, lass es uns wissen. – Eddie