¿Se considera HttpUtility.HtmlAttributeEncode para los atributos de comillas simples?

1

MSDN :

  

El resultado de la cadena del método HtmlAttributeEncode se debe usar solo para los atributos entre comillas dobles. Pueden surgir problemas de seguridad al usar el método HtmlAttributeEncode con atributos de comillas simples.

Todo lo que encontré en mis búsquedas decía que HttpUtility.HtmlAttributeEncode no codifica apóstrofes. Sin embargo, lo probé por mí mismo y lo estoy escapando (con ' ). Esto se puede ver en fuente de referencia también:

No pude encontrar ninguna publicación oficial del blog sobre cómo cambiar este comportamiento. ¿Puede alguien aclarar el estado actual?

    
pregunta bayotop 07.08.2015 - 12:43
fuente

1 respuesta

1

Experimentalmente, HttpUtility.HtmlAttributeEncode() NO reemplaza los apóstrofes cuando se usa .NET framework 3.5 (y versiones anteriores). Los reemplaza con marco 4.5. Entonces uno tiene que asumir que el comportamiento cambió; esto se puede ver comparando la documentación para .NET 3.5 :

  

El método HtmlAttributeEncode convierte solo las comillas ("), ampersands (&) y los corchetes de ángulo izquierdo (<) en entidades de caracteres equivalentes.

con la documentación para .NET 4.5 :

  

El método HtmlAttributeEncode codifica los caracteres apropiados para la inserción en un valor de atributo HTML.

Tenga en cuenta que incluso la nueva documentación todavía dice que la cotización es segura solo para los valores de atributo entre comillas dobles. Mi conjetura es que si bien la intención es apuntar solo a los atributos de comillas dobles, los desarrolladores de Microsoft finalmente se dieron cuenta de que la mayoría de los desarrolladores no leen realmente la documentación y utilizará HtmlAttributeEncode() para los atributos de comillas simples, por lo que agregar un escape para los apóstrofes fue una forma agradable y formalmente compatible con versiones anteriores de hacer que el mundo sea un poco mejor.

    
respondido por el Tom Leek 07.08.2015 - 14:39
fuente

Lea otras preguntas en las etiquetas