PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Browser identifizieren


naitch
2006-07-26, 11:37:04
Hi

ich muss für dieses Semester eine Semesterarbeit abgeben die sich mit dem Thema Browser Identifikation beschäftigt. Ich hab bis jetzt über JS und dem Objekt Navigator eine Website erstellt die einen Browser identifizert und wie ihr alle wisst kann man den USER_Agent leicht fälschen.

Deswegen frage ich euch obs noch andere Methoden gibt um Browser relativ sicher zu identifizieren. Ich denke so ein kleines Script reicht nicht als Semesterarbeit.

Ich danke für jeden Beitrag und ach noch etwas ich bin neu in der Materie, also wenns geht nicht so kompliziert die Möglichkeiten beschreiben

mithrandir
2006-07-26, 12:01:03
Dere!

Also grundsätzlich kann man wohl eine clientseitige Prüfung (JS) und eine serverseitige Prüfung (z.B. PHP) unterscheiden. In PHP ginge das z.B. so:

<?php
$user_agent = $_SERVER['HTTP_USER_AGENT'];
?>
<html>
<head>
<title>User-Agent anzeigen</title>
</head>
<body>
<p align="center">
Ihr User-Agent ist:<br><?=$user_agent?>
</p>
</body>
</html>

-> http://staff.withingames.net/mithrandir/useragent.php

Mein Firefox im Moment:
Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.8.0.3) Gecko/20060508 Firefox/1.5.0.3

Opera als er selbst:
Opera/7.50 (X11; SunOS sun4u; U) [en]

Alles, was ein Browserprogramm im HTTP-Header mitschickt, kann allerdings auch leicht verschleiert werden (siehe Optionen moderner Browser, sich als "anderer" Browser auszugeben).

Opera als anderer Browser getarnt:
IE -> Mozilla/4.0 (compatible; MSIE 6.0; X11; SunOS sun4u) Opera 7.50 [en]
Moz -> Mozilla/5.0 (X11; SunOS sun4u; U) Opera 7.50 [en]

Hier sieht man schon, dass man anhand des Strings trotzdem erkennen kann, ob es sich um einen "echten" IE oder um einen Opera in Tarnung handelt. Es gibt allerdings auch Erweiterungen, um die Header zum Beispiel manuell zu veraendern, da kann man dann reinschreiben, was man will.

Schau mal hier rein:
http://de.wikipedia.org/wiki/Useragent

Auf der JavaScript-Seite hat man auch die Möglichkeit, durch das Prüfen von JS-Features auf den Browser zu schliessen, z.B. ob document.all und/oder document.layers unterstützt wird. Das wird aber in der Regel nicht so gerne gesehen.

Schau auch mal hier rein:
http://www.javascript-workshop.de/buch/10.html

bye, Peter

naitch
2006-07-26, 12:33:35
danke das hilft mir schon mal weiter

naitch
2006-07-27, 11:02:32
Gibt es nicht auch noch erine Methode einen Browser zu identifizieren über den Anzeigebereich per Pixelabstandmessung?

Das hat mir nämlich nen kumpel gesagt, da würde es bei JS eine Funktion geben die das macht und die hab ich auch eingebaut kann nur nicht viel damit anfangen.

Und noch ne Frage sind Firefox 1.5.0.5,IE6 und Opera 9 W3C Browser? Ich hab nämlich die Funktion über document.all usw in mein Skript eingebaut und er sagt mir , wennich mit Firefox,IE und Opera teste immer es ein W3C Browser

5tyle
2006-07-27, 12:49:27
Gibt es nicht auch noch erine Methode einen Browser zu identifizieren über den Anzeigebereich per Pixelabstandmessung?Wär mir neu

Das hat mir nämlich nen kumpel gesagt, da würde es bei JS eine Funktion geben die das macht und die hab ich auch eingebaut kann nur nicht viel damit anfangen.Um welche Funktion handelt es sich denn? Wenn der Browser ausgelesen wird, dann werden üblicherweise die Informationen von USER_AGENT im HTTP-Header ausgelesen. Offiziell: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html , 14.43. Mehr dazu findest du auch bei Wikipedia.

Und noch ne Frage sind Firefox 1.5.0.5,IE6 und Opera 9 W3C Browser? Ist dort alles spezifiziert.

Ich hab nämlich die Funktion über document.all usw in mein Skript eingebaut und er sagt mir , wennich mit Firefox,IE und Opera teste immer es ein W3C Browser?

Wenn dir das noch irgendwie hilft: Das Thema Browseridentifikation beschäftigt sich meiner Ansicht nach nicht nur mit der Methode an und für sich sondern auch mit dem "Nutzen" der daraus gezogen werden kann. Einsatz von Browserweichen, Seiten die auf einen USER-AGENT beschränken (z.B. IE :( oder FF :) )
Webserver Logs, Statistische Auswertung von Benutzerinformationen und Rückschlüsse darüber.

Wahrscheinlich gibt es keine gängige Methode um einen Browser definitiv zu identifizieren.

Noch zu dem Thema: http://www.validome.org/doc/HTML_ge/diverses/clients.htm

naitch
2006-07-27, 17:55:37
Also Statistiken und Browserweichen und so ein krams muss ich alles nicht machen, aber ich glaube das reicht auch was ich im moment habe

Ich schreibe einfach noch was zu User-Agent fälschen und das sollte dann reichen.

Zu meinen Funktionen mit Pixelabstand messen ich schreib mal eben ein Auszug aus meinem Skript hierrein document.write("NS: " + window.innerWidth + " * " + window.innerHeight);
document.write("IE: " + document.body.offsetWidth + " * " + document.body.offsetHeight);

Das komische daran ist, dass es unter IE nicht funzt aber unter FF und OPERA