Sto cercando di comprendere la differenza tra alcuni linguaggi web e le implicazioni di sicurezza di ciascuno. In particolare questo riguarda l'esecuzione di codice nel contesto del browser web sul lato server .
Capisco con molti difetti di iniezione come lo scripting cross-site e Javascript che puoi avere un output non correttamente disinfettato visualizzato all'interno dell'elemento HTML, che viene quindi interpretato come codice invece del suo contesto originale (vale a dire il testo più probabile). Apprezzo anche che questo è in gran parte dovuto al fatto che l'elaborazione del codice avviene sulla macchina client.
Con altri linguaggi come PHP potresti anche avere un'informazione inclusa in una pagina web che contiene anche un codice PHP valido come <php phpinfo(); ?>
. Il server analizza questo codice e lo esegue come PHP valido, attivando la visualizzazione delle informazioni PHP.
La mia domanda è - in quale fase deve essere il codice all'interno della pagina prima che il browser lo tratti come codice valido per la lingua?
vale a dire. Potrebbe avere una vulnerabilità XSS trasformarsi in esecuzione di codice perché qualcuno inietta invece il codice PHP e il server lo analizza?
Sarebbe diverso per qualcosa di simile a una vulnerabilità XSS * memorizzata, oppure a una vulnerabilità XSS riflessa?
Esiste qualcosa come l'esecuzione DOM del codice PHP?
C'è qualche differenza tra altri linguaggi come aspx / asp in relazione a PHP e qualcosa come Javascript?
* Quando dico XSS, intendo semplicemente che il codice non modificato e senza caratteri non viene passato al server.