JavaScript, la Guida definitiva, 4a edizione - pubblicato nel 2001 - menzioni questi un po 'più in dettaglio. La sezione pertinente sembra essere disponibile gratuitamente . È proprio in fondo a quel link. Ecco l'estratto:
12.2.5. JavaScript in Nonstandard Contexts
Both Netscape and Microsoft have implemented proprietary extensions in their browsers, and you may occasionally see JavaScript code in a context other than those described here. For example, Internet Explorer allows you to define event handlers in a <script>
tag that uses special for
and event
attributes. Netscape 4 allows you to use JavaScript as an alternative syntax for defining CSS style sheets within a <style>
tag. Netscape 4 also extends the HTML entity syntax and allows JavaScript to appear within entities (but only within the values of HTML attributes). This can result in HTML that looks like this:
<table border="&{getBorderWidth( )};">
Finally, Netscape 4 also supports a form of conditional comment based on this JavaScript entity syntax. Note that Netscape 6 and the Mozilla browser on which it is based no longer support these nonstandard uses of JavaScript.
Quindi è un abuso della tipica sintassi dell'entità HTML - il tipo in cui usiamo &
per produrre una e commerciale. Invece di scrivere amp
, scrivo {alert('oh no')}
.
Tuttavia, il libro menziona che Netscape 6 - pubblicato nel 2000, attorno al tempo di IE6 - e il primissimo browser Mozilla stava già prendendo provvedimenti per eliminare questo exploit. È abbastanza improbabile che esista nelle versioni recenti del browser.
Se mai ha influito su Internet Explorer (che non è menzionato come permesso anche in primo luogo), non ho informazioni su a quale versione è cessato di essere un exploit IE praticabile.