Estoy tratando de entender la diferencia entre ciertos idiomas web y las implicaciones de seguridad de cada uno. Específicamente, esto se refiere a la ejecución de código en el contexto del navegador web en el lado del servidor .
Entiendo que con muchas fallas de inyección, como las secuencias de comandos de sitios cruzados y Javascript, puede tener una salida desinfectada de manera incorrecta dentro del elemento HTML, que luego se interpreta como un código en lugar de su contexto original (es decir, el texto más probable). También aprecio que esto se deba en gran parte a que el procesamiento del código se lleva a cabo en la máquina cliente.
Con otros idiomas, como PHP, también puede tener una información incluida en una página web que también contiene código PHP válido, como <php phpinfo(); ?>
. El servidor analiza este código y lo ejecuta como PHP válido, activando la pantalla de información de PHP.
Mi pregunta es: ¿en qué etapa debe estar el código dentro de la página antes de que el navegador lo trate como un código válido para el idioma?
I.e. ¿Podría tener una vulnerabilidad XSS que se convierta en ejecución de código porque alguien inyecta código PHP y el servidor lo analiza?
¿Sería esto diferente para algo así como una vulnerabilidad XSS * almacenada vs decir una vulnerabilidad XSS reflejada?
¿Existe tal cosa como la ejecución DOM de código PHP?
¿Hay alguna diferencia entre otros idiomas, como aspx / asp en relación con PHP o algo como Javascript?
* Cuando digo XSS, simplemente me refiero al código que se pasa al servidor.