Domanda

In ASP.NET 4, possiamo usare l'operatore new <%: ... %> per l'output HTML stringhe codificate. E 'possibile configurare ASP.NET 4 (in web.config) in modo che l'operatore <%= ... %> sarà anche HTML codificare le stringhe?

È stato utile?

Soluzione

No, fortunatamente.

Se si configura in questo modo, gli sviluppatori avranno l'abitudine di usare <%= ... %> e non codifica.

Se in seguito a lavorare su un progetto diverso (normale), finiranno per dimenticare per codificare la loro produzione.

ASP.Net Razor fa default HTML codifica, perché non ha questo problema.
(Non esiste un codice Razor è possibile passare a che non sarà codificare per impostazione predefinita)

Altri suggerimenti

Personalmente, non mi piace questa nuova sintassi <%:. Io invece uso <%= HttpUtility.HtmlEncode(, perché è molto più esplicito.

Oltre a questo, si dà un falso senso di sicurezza, perché lo fa solo HTML codifica. Guardate questo frammento per esempio:

function myJavaScriptFunction()
{
    var message = '<%: Person.LastComment %>';
    alert(message);
}

Non si salva, perché non usa la codifica corretta. Quanto segue è sicuro:

function myJavaScriptFunction()
{
    var message = '<%: AntiXss.JavaScriptEncode(Person.LastComment) %>';
    alert(message);
}

Molto più esplicito.

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