Konfiguration des Besucherrechners

de.comp.lang.javascript:
Zur Newsgroup
Website: dcljs.de
Zur FAQ

Oftmals werden in der Newsgroup Fragen bezüglich der Veränderbarkeit der Browsereinstellungen oder des Auslesens der Benutzervorgaben und ähnlichem gestellt. Aus gutem Grund werden diese Anfragen aber immer mit einem "Geht nicht." beantwortet.

Inhalte

Umleitungsmöglichkeiten nach...
[Adresszeile manipulieren] [Sicherheitsabfragen umgehen] [Programme starten] [Zugriff auf Daten des Benutzers] [IP auslesen] [History auslesen/ändern] [Backbutton des Browsers sperren] [Ausdruck beeinlussen]

Adresszeile manipulieren

Falls Du irgendwo eine recht kompliziert zu merkende URL hast und Dir nun bei einem Provider zusätzlich eine (einfacher zu merkende) Kurzadresse eingerichtet hast, dann möchtest du eventuell, dass in der Adressleiste die ursprüngliche Kurzadresse stehen bleibt. Dummerweise zeigt der Browser aber nun Deine kompliziert zu merkende URI an, und das möchtest du gern verhindern. Es gibt eigentlich nur einen Weg:

Du kannst allenfalls ein Frameset nehmen und in dessen Frames dann den eigentlichen Inhalt laden. Wenn das aber unterschiedliche Domains sind, dann kann dies je nach dem, was Du genau machst, zu Fehlermeldungen der Art Zugriff verweigert führen.

(Georg Maaß, 07 Jul 2001 14:51:20 in der Newsgroup)

 

Sicherheitsabfragen umgehen

Du hast die tolle Idee, ein angepasstes Browserfenster zu öffnen und das bisherige Fenster zu entsorgen, da es ja sonst nur im Weg ist. Und nun kommt so eine nervige Sicherheitsabfrage, wie ärgerlich. Oder Du möchtest ein Formular per mailto: ohne diese Sicherheitsabfrage abschicken. Diese läßt sich nicht umgehen, egal, was du versuchst. Die Sicherheitsabfragen sollen Deinen Besucher vor dem Verlust von Daten (z.B.im obigen Fall dem Verlust der History) schützen. Viele User sind es gewohnt, über den [BACK]-Button ihres Browsers wieder auf die vorherige Seite zurück zu gehen, und diese Möglichkeit nimmst Du ihnen dann. Dein Besucher wird schon mündig genug sein, um selbst zu entscheiden, ob er Dir soweit vertraut, dass er den [OK]-Button betätigt.

Im Netscape kannst du versuchen, mit Privilegien zu arbeiten, aber auch diese muss Dein Besucher erst mit einem Klick auf einen [OK]-Button bestätigen, es sei denn, es handelt sich um signierte Scripte, siehe zu diesem Thema: Client-Side JavaScript Guide (LiveConnect).

Im Falle der Abfrage beim Schließen eines Fensters kommt in diesen Fällen keine Abfrage:

Programme starten

Sehr oft wird nachgefragt, ob/wie man externe Programme mit JavaScript starten kann.Die Antwort ist recht einfach (und findet sich so ähnlich auch in der FAQ):

Es geht nicht.

Das Starten von Programmen ist aus Sicherheitsgründen nicht möglich. Indirekt passiert dies beim Betrachten eines Dokumentes mit einem externen Programm (oder PlugIn). In diesem Fall wird jedoch nicht unmittelbar ein Programm gestartet, sondern ein Dokument übertragen. Bei entsprechender Konfiguration des Browsers (und nur dann) kann man auf diesem Weg auch ein bestimmtes Programm starten.

Zugriff auf Daten des Benutzers

Du möchtest z.B. herausfinden, wie die Mailadresse Deines Besuchers ist, damit er nicht wghvdvw@xxx.xx in Dein Formular schreibt? Dies scheitert daran,

Auch hier tauchen im optimalen Fall Sicherheitsabfragen auf, und auch hier kannst Du versuchen mit signierten Scripten zu arbeiten. Sympatischer macht es Deine Site garantiert nicht, und einige Besucher werden Deine Site deswegen wahrscheinlich schnell verlassen.

IP auslesen

Es ist nicht möglich, per JavaScript die IP-Adresse deines Besuchers herauszubekommen. So etwas muss entweder serverseitig ueber CGI gelöst werden - wobei man sich auch fremder Helfer bedienen kann - oder clientseitig mit Java.
Folgendes funktioniert mit Netscape (bei aktiviertem Java), wenn eine Onlineverbindung besteht:

localHost=java.net.InetAddress.getLocalHost();
host=localHost.getHostName();
ip=localHost.getHostAddress();
alert(host+'\n'+ip);

Solltest Du es offline probieren wollen, so ist hierfür eventuell das UniversalPropertyRead Privileg erforderlich:

function hostName()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalPropertyRead");
// (Anforderung des Privilegs)
 myAddress=java.net.InetAddress.getLocalHost();
 host=myAddress.getHostName();
 ip=myAddress.getHostAddress();
 alert(host+'\n'+ip);
}

Eine clientseitige Lösung für IE gibt es nicht, ebensowenig wie es eine Garantie dafür gibt, dass die herausgefundene IP die Deines Besuchers ist. Falls eine Firewall dazwischenhängt erhältst Du unter Umständen eine falsche IP.

Vielen Dank an Georg Maaß und Wolfgang Schwarz für ihre Tests und Hilfen bei diesem Thema!

History auslesen/ändern

Oftmals wird gefragt, ob über die History des Browsers herausfindbar ist, von welcher Site Dein Besucher zu Dir gefunden hat. Du kannst z.B. über document.referrer versuchen, herauszufinden woher Dein Besucher kam, allerdings ist dieses Merkmal recht unsicher, denn der referrer ist z.B. leer, wenn:

Wie Du schon erkennen kannst, greift document.referrer nicht auf die History des Browsers zurück. Die History gehört zum persönlichen Datenbereich Deines Besuchers, und innerhalb dieses Bereiches hast Du eben nichts zu lesen, denn dann hätten wir wohl den gläsernen Surfer. Da dieser Bereich für Dich tabu ist, kannst Du auch keine Daten, die vor Deinem Historyeintrag liegen ändern.

Backbutton des Browsers sperren

Manche "Webmaster" möchten verhindern, dass der Besucher den Backbutton seines Browsers benutzen kann (aus welchem Grunde auch immer). Da man an den Backbutton nicht herankommt (er gehört zum Browser, da kann man mit JavaScript nichts beeinflussen) bieten sich noch folgende Möglichkeiten an:

Ausdruck beeinlussen

Derlei Fragen lassen sich nur mit einem "Geht nicht" (mit Javascript) beantworten. Der Grund ist simpel:

"JavaScript weiß nichts davon, wie der Browser Drucken realisiert."
(Johann Burkard, 20 Oct 2002 19:21:55 in der Newsgroup)

 
Michael Praast
Kontakt/Feedback