No, si "
se escapa correctamente, no hay forma de ir más allá del valor del atributo HTML.
Su navegador analiza HTML como una máquina de estado. Para verificar qué transiciones de estado son posibles con sus caracteres disponibles, puede buscar el estado en especificación de sintaxis HTML5 . En su caso, estas son las opciones:
8.2.4.38 Attribute value (double-quoted) state
Consume the next input character:
U+0022 QUOTATION MARK (")
Switch to the after attribute value (quoted) state.
U+0026 AMPERSAND (&)
Switch to the character reference in attribute value state, with the additional allowed character being U+0022 QUOTATION MARK (").
U+0000 NULL
Parse error. Append a U+FFFD REPLACEMENT CHARACTER character to the current attribute's value.
EOF
Parse error. Switch to the data state. Reconsume the EOF character.
Anything else
Append the current input character to the current attribute's value.
Como puede ver, la única forma de salir del Estado de valor de atributo citado es a través de la comilla correspondiente ( "
o '
respectivamente). Cualquier otro carácter solo se agrega al valor del atributo actual. Incluso los paréntesis angulares y los caracteres de control no tienen un significado especial dentro de un atributo.
Entonces, en este caso particular, también es irrelevante cómo se manejan <
y >
. Esto no se desencadena :
<input type="text" value="<script>alert('No bounty for you.')</script>">