Ik denk dat ik bepaalde kennis mis, maar wat is nou het nut van JavaScript uitschakelen? volgens mij heeft dit totaal geen zin... met javascript kun je normaal gesproken sowieso niet bij bepaalde belangrijke dir's komen, want daar bestaat een ingebouwde beveiliging voor... probeer maar es via een javascrippie c:\ eruit te halen...
sinds Netscape 3.0b5 bestaat er al Data-tainting.
ik citeer:
In de eerste versies van JavaScript (Netscape 2.0 en 2.01) waren properties van een document altijd beschikbaart voor de JavaScript-code in andere documenten. Werd een pagina geladen in een frame, dan kon een JavaScript programma in een ander frame de properties van de pagina lezen, bijvoorbeel links, anchors en formulierelemten.
Hoewel het lezen van de properties van een document niet direct een beveiligingsprobleem lijkt, wisten enkele slimmme mensen hiervan gebruik te maken. Er is altijd wel iemand die zo'n fout vindt er er misbruik van maakt. De trucs die mogelijk waren:
- Een document kon een file-URL, bijv. file://c:\dos\, in een frame openen en een bestandenlijst weergeven. een JavaScript-programma in een ander frame kon de inhoud lezen (via de links-array) en naar een server zenden.
- Een Web-pagina kon een oinzichtbaar frame openen in een JavaScript-programma en tijdens het browsen de door u bezochte sites naar de server sturen.
Gelukig kwam Netscape met een oplossing waarmee iedereen tevreden was: vanaf Navigator 3.0b5 wordt data-tainting ondersteund. Hiermee krijgt u toegang tot de properties van een document in een ander frame, alleen als u daartoe gemachtigd bent.
Gegevens van de server worden gemarkeerd (van een taint voorzien). De gegevens zijn nog wel steeds bruikbaar. Wat u ook met de gegevens doet - toewijzen aan variabelen, gebruiken in berekeningen - ze blijven voorzien van de taint.
Wanneer een JavaScript programma de gegevens naar een server probeert te zenden - via een formulier of URL - worden ze altijd gecontroleerd op de taint. Als taint-data aanwezig is, wordt de gebruiker gewaarschuw en kan de actie afgebroken worden.
Voilà... wat is dan nu nog het probleem met JavaScript?