In base alla raccomandazione W3C (e secondo W3C Schools ), un foglio di stile XSL usando XSLT dovrebbe essere dichiarato come segue:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Domanda:
http://www.w3.org/1999/XSL/Transform
è mai stato effettivamente scaricato su HTTP (al contrario di essere in bundle con i browser Web, ad esempio), rendendo i fogli di stile XSL vulnerabili a un attacco man-in-the-middle? Se sì, come dovrebbe essere neutralizzato questo attacco?
(Ho controllato con uno sniffer di pacchetti e non ho trovato alcuna richiesta di questo tipo, ma non lo ritengo del tutto conclusivo, dal momento che potrebbe esserci qualche caching in gioco.)
Impostazione: Un server Web (attendibile) sta servendo i seguenti due file su HTTPS:
data.xml:
<?xml version="1.0" encoding="utf-8" ?> <?xml-stylesheet type="text/xsl" href="style.xsl"?> <root> </root>
style.xsl:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> Output </xsl:template>
Un client (utilizzando ad esempio un moderno browser Web) accede al file data.xml.
Attacco proposto:
Se / quando il browser web accede a http://www.w3.org/1999/XSL/Transform
, un utente malintenzionato sostituisce qualcosa di malevolo, che trasforma l'XML in qualunque cosa l'hacker desideri, ignorando così l'autenticazione HTTPS.