2009-07-22 10 views

risposta

17

No, non ha bisogno di essere codificato come un URI. Tuttavia, caratteri HTML devono essere codificati, come questo ...

<img src="myimg.png" alt="Me &amp; my image" /> 
+0

Sostituire "dovrebbe" con "deve" - ​​almeno se si desidera passare un validatore – kdgregory

+4

Sostituire con must se non si desidera essere colto fuori mettendo citazioni in là. –

+0

Sostituisci con must se non vuoi lo schermo giallo della morte (ammesso che tu stia servendo il tuo XHTML come application/xhtml + xml, altrimenti XHTML è solo più guai allora ne vale la pena) – Quentin

2

No non è così. La codifica è per gli URL come in http://en.wikipedia.org/wiki/Dream%20Theater, che non è la stringa alt.

Sarà necessario utilizzare entity-encoding per sfuggire > come &gt;, e " come &quot;, però. Si noti che è diverso da URI encoding dove i caratteri speciali sono codificati come un segno di percentuale più due cifre esadecimali.

5

Esse non necessitano di codifica URL, ma richiedono, come tutti gli attributi XHTML lo fanno, la codifica delle entità XHTML.

errato:

<img src="foo.gif" alt="Ben & Jerry's" /> 

corretta:

<img src="foo.gif" alt="Ben &amp; Jerry's" /> 

Si sarebbe anche bisogno di codificare virgolette nei valori, anche se non c'è bisogno di farlo nel testo generale.

Riferimento:.

0

Si dovrebbe utilizzare la codifica HTML (vale a dire "diventa "), non codifica URL Se si utilizza ASP.NET è possibile raggiungere questo obiettivo con Server.HtmlEncode o meglio ancora utilizzare il metodo HtmlAttributeEncode nel AntiXSS Library on CodePlex.

Problemi correlati