Cybaer: Fazit: Browsermaskierung

Beitrag lesen

Hi,

Zumindest bei der Firefox-Erweiterung ist es tatsächlich genau umgekehrt: Man kann dort appName, appVersion, etc. eintragen und er baut daraus den UA-String zusammen.

Die kannte ich noch nicht.

Aber: Man kann nicht product und productSub verändern! D.h., das "Gecko" in product bleibt (ebenso wie das Vorhandensein der Eigenschaft selbst) erhalten. Perfekt maskieren kann man den Browser damit nicht. Und bei meiner eigenen Browser-Detection wird ein als IE maskierter FF dennoch nur als IE erkannt (da ich generell für IE>=4 Conditional Compilation voraussetze). Auch bei Opera ./. Fake-Opera greift nach wie vor die Prüfung auf window.opera.

Dennoch bleibt meine ursprüngliche Aussage, daß diese Abfrage, ggf. in Verbindung mit CC, *eine* Möglichkeit zur Feststellung sei, nicht bestehen. Denn auch beim IE wird appVersion neu gesetzt, wenn man via Registry einen anderen IE vorgaukelt. Ein Test mittels Conditional Comments funktioniert dann aber ggf. natürlich auch nicht mehr, da man den Version Vector ja ebenfalls in der Registry ändern kann ...

Beim Safari hingegen kann man einen String angeben, der wird dann zerlegt, gerade getestet.

Kann ich nicht bestätigen. Er übernimmt den UA einfach nach appVersion (wobei ein ggf. das führendes "Mozilla/" entfernt wird), aber appName und der Rest bleiben unangetastet. Der einzige Wert, der ihn als Safari ausweist, ist sowieso der vendor-Wert (sofern man Chrome bereits ausgeschlossen hat). Und auch der bleibt unangetastet.

Fazit:

Man kann die IEs & Operas (sofern nicht uralt) *immer* vom Rest unterscheiden. Aber man kann nicht die tatsächliche Version sicher auslesen. Dazu müßte man auf Eigenschaften (JS und/oder CSS) prüfen, die die jeweiligen Versionen haben - oder eben auch nicht.

Den Rest der gängigen Browser kann man ggf. mit dem FF und der Extension faken (oder vermutlich auch, indem man die Änderungen im jeweiligen Mozilla manuell einträgt) - sofern man dazu nicht product oder productSub benötigt. Aber zumindest Safari & Chrome tarnen sich hier ohnehin als "Gecko", und die offizielle kennung des Konquerors, "KDE" in vendor, läßt sich faken.

Gruß, Cybaer

--
Man muß viel gelernt haben, um über das, was man nicht weiß, fragen zu können.
(Jean-Jacques Rousseau, Philosoph u. Schriftsteller)