E 'possibile attivare la codifica HTML per impostazione predefinita in ASP.NET 4?
-
25-09-2019 - |
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?
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.