So kann man sich irren. Bislang hielt ich JavaScript für ziemlich harmlos. Der in einer Webseite eingebundene JavaScript-Code wird im Browser clientseitig ausgeführt und ermöglicht eindrucksvolle Effekte, wie es neuerdings AJAX-Applikationen demonstrieren. JavaScript bleibt dabei gewissermassen im Gefängnis der Ausführungsumgebung des Browsers eingesperrt. Schaden kann JavaScript dabei nicht anrichten. JavaScript hat z.B. keinen Zugriff auf das Dateisystem.
Aber mit JavaScript kann man dennoch durch die Gitterstäbe des Browsergefängnisses spähen! Und das sogar ziemlich weit. Es ist möglich Port-Scans durchzuführen und das Rechnernetz eines ahnungslosen Surfers auszuspähen. Die verwendete Technik dahinter hat etwas bestechendes -- einmal abgesehen davon, was man damit anrichten kann. Ich wurde darauf in einer heise-Meldung aufmerksam.
Die Idee ist so einfach wie genial: Nehmen wir im ersten Schritt die Suche nach ausspähbaren Zielen. Das Image-Objekt in JavaScript kennt ein Attribut "src" (für source, Quelle) , das einfach mit einer IP-Adresse des Ziels versehen wird. Damit wird versucht, ein Bild vom Ziel zu laden. Darüber läßt sich herausfinden, ob das Ziel existiert -- ein ping. Weitere Details finden Sie in dem verlinkten SPI-Paper. Es lohnt sich auch, den Code auf der Beispielseite zu studieren, insbesondere scanner3.js ist dabei von Interesse.
Aber mit JavaScript kann man dennoch durch die Gitterstäbe des Browsergefängnisses spähen! Und das sogar ziemlich weit. Es ist möglich Port-Scans durchzuführen und das Rechnernetz eines ahnungslosen Surfers auszuspähen. Die verwendete Technik dahinter hat etwas bestechendes -- einmal abgesehen davon, was man damit anrichten kann. Ich wurde darauf in einer heise-Meldung aufmerksam.
Die Idee ist so einfach wie genial: Nehmen wir im ersten Schritt die Suche nach ausspähbaren Zielen. Das Image-Objekt in JavaScript kennt ein Attribut "src" (für source, Quelle) , das einfach mit einer IP-Adresse des Ziels versehen wird. Damit wird versucht, ein Bild vom Ziel zu laden. Darüber läßt sich herausfinden, ob das Ziel existiert -- ein ping. Weitere Details finden Sie in dem verlinkten SPI-Paper. Es lohnt sich auch, den Code auf der Beispielseite zu studieren, insbesondere scanner3.js ist dabei von Interesse.