XSS reflejado es posible si el parámetro es parte de la URL (generalmente en la cadena de consulta) o parte del cuerpo del mensaje en una solicitud POST.
Los parámetros en los encabezados o cookies generalmente no se pueden usar en un ataque XSS reflejado porque no hay forma de que un atacante establezca estos encabezados (los encabezados personalizados no pueden enviarse entre dominios sin el uso de CORS).
No siempre requieren un clic de la víctima directamente en la URL infectada. Decir si un sitio web que el usuario visita habitualmente está comprometido, el atacante puede agregar
<form method="post" action="https://example.com/submit">
<input type="hidden" name="textarea1" value="<input onclick=alert(document.cookie)>" />
</form>
<script>
document.forms[0].submit();
</script>
al HTML (ataque de abrevadero).
Tenga en cuenta que si una página web es vulnerable a un ataque XSS reflejado por un cuerpo POST, esto también puede mitigarse a través de protecciones anti-CSRF en lugar de la codificación de salida HTML adecuada (aunque en el espíritu de defensa en profundidad también recomendaría corregir la vulnerabilidad real de XSS porque podría haber otros vectores de ataque que podrían explotar esto).