Ergebnis 1 bis 13 von 13
  1. #1
    Avatar von jspit
    jspit ist offline Lounge-Member
    registriert
    19-06-2009
    Beiträge
    1.712

    Browser Fingerprint ID

    Hi,
    hab mal zum Test eine function geschrieben, die für den Browser eine Fingerprint-ID liefert.
    PHP-Code:
    function crc16(tstr) {
      var 
    crc 0xFFFF;
      var 
    anz tstr.length;
      var 
    iz;
      for(
    0<anzi++) {
        
    crc = (crc tstr.charCodeAt(i)) & 0xFFFF;
        for (
    iz=0iz 8iz++) {
          
    crc crc ? ((crc >> 1) ^ 0xA001) & 0xFFFF crc >> 1; }
        }
      return 
    crc;
    }

    function 
    BrowserId() {
      var 
    sid "";
      for(var 
    i in navigator){
        
    sid += ":";
        if(
    typeof navigator[i]=="string")sid += navigator[i] + ";"
      
    }
      
    sid += navigator.language navigator.language navigator.userLanguage;
      
    sid += (new Date("2000/1/1")).getTimezoneOffset();
      
    sid += screen.width "x" screen.height "F" screen.colorDepth
      
    return crc16(sid);


  2. #2
    Bieber ist offline König
    registriert
    10-12-2007
    Ort
    Erfurt
    Beiträge
    964

    AW: Browser Fingerprint ID

    PHP-Code:
    function BrowserId() {
      var 
    sid "";
      for(var 
    i in navigator){
        
    sid += ":";
        if(
    typeof navigator[i]=="string")sid += navigator[i] + ";"
      
    }
      
    sid += navigator.language navigator.language navigator.userLanguage;
      
    sid += (new Date("2000/1/1")).getTimezoneOffset();
      
    sid += screen.width "x" screen.height "F" screen.colorDepth;
      
      
    //ads by bieber
      
    if(navigator.javaEnabled() == true)
          
    sid += "javaOn";
      else if(
    navigator.javaEnabled() == false)
          
    sid += "javaOff";
      else
          
    sid += "javaTot";

      for(
    i=0;i<navigator.plugins.length;i++)
        {
            
    sid += navigator.plugins[i].name;
        }
      
    //end ads by bieber
      
    return crc16(sid);  

    irgendwie kann man auch die plugins-version rausbekommen, ich denke, dass bringt einen nochmal ein Stück weiter, da einige User nicht updaten...hab aber noch net gefunden wie man das macht, gibt aber tausende Anleitung wenn man nach "detect browser plugins javascript" sucht
    crazy

    Schach online: Lust auf eine Partie Schach gegen mich? Einfach kostenlos auf onlineschach.eu registrieren und den Bieber suchen.

  3. #3
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.757

    AW: Browser Fingerprint ID

    Zitat Zitat von Bieber Beitrag anzeigen
    PHP-Code:
      if(navigator.javaEnabled() == true)
          
    sid += "javaOn";
      else if(
    navigator.javaEnabled() == false)
          
    sid += "javaOff";
      else
          
    sid += "javaTot"
    Was soll denn das? entweder naviagtion.javaEnabled() == true oder == false - was drittes gibt es nicht... (bei drei = wär's was anderes)

  4. #4
    Avatar von jspit
    jspit ist offline Lounge-Member
    registriert
    19-06-2009
    Beiträge
    1.712

    AW: Browser Fingerprint ID

    @Bieber:
    1. javaEnabled() ist in der navigator-Auflistung enthalten, wird also von meiner for-Schleife mit erledigt.
    2. Nicht jeder Browser hat auch Plugins, die Identifizierung sollte für jeden Browser ähnlich stark sein.

  5. #5
    Bieber ist offline König
    registriert
    10-12-2007
    Ort
    Erfurt
    Beiträge
    964

    AW: Browser Fingerprint ID

    wenn das Objekt nicht existiert?! hat denn jeder Browser navigator.javaEnabled() ?! wenn nicht dürfte weder true noch false kommen oder?!

    bin und bleibe ein Noob, lasse mich gerne eines besseren belehren

    edit: und ja du hast recht... ich halt ja schon mein Klappe^^
    crazy

    Schach online: Lust auf eine Partie Schach gegen mich? Einfach kostenlos auf onlineschach.eu registrieren und den Bieber suchen.

  6. #6
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.757

    AW: Browser Fingerprint ID

    wenn navigator.javaEnabled nicht existiert wird ein Fehler geworfen und dein Skript kommt zum stillstand.

    @jspit: aber typeof navigator.javaEnabled ist nicht "string" sondern "function" und wird deswegen nicht berücksichtigt.

  7. #7
    Avatar von Junkee[]
    Junkee[] ist offline Lounge-Member
    registriert
    08-05-2009
    Ort
    Leonberg
    Beiträge
    3.169

    AW: Browser Fingerprint ID

    PHP-Code:
    for(var i in navigator){
        
    sid += ":";
        if(
    typeof navigator[i]=="string")sid += navigator[i] + ";"
        
    else if(typeof navigator[i]=="function")sid += navigator[i]() + ";"
      


  8. #8
    Avatar von jspit
    jspit ist offline Lounge-Member
    registriert
    19-06-2009
    Beiträge
    1.712

    AW: Browser Fingerprint ID

    Zitat Zitat von kkapsner Beitrag anzeigen
    @jspit: aber typeof navigator.javaEnabled ist nicht "string" sondern "function" und wird deswegen nicht berücksichtigt.
    Und wieder hat er recht...
    Hätte nochmal in meinen eigenen Script schauen sollen.

    nicht getestet, sollte aber funktionieren:
    PHP-Code:
    if(typeof navigator[i]!="object"sid += String(navigator[i]) + ";" 

  9. #9
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.757

    AW: Browser Fingerprint ID

    Ich würd's so machen:
    Code:
    var value;
    if (typeof navigator[i] == "function") value = navigator[i]();
    else value = navigator[i];
    
    sid += String(value) + ";";
    Geändert von kkapsner (18-05-2010 um 14:04 Uhr) Grund: = -> ==

  10. #10
    Avatar von jspit
    jspit ist offline Lounge-Member
    registriert
    19-06-2009
    Beiträge
    1.712

    AW: Browser Fingerprint ID

    Zitat Zitat von kkapsner Beitrag anzeigen
    Ich würd's so machen:
    Code:
    var value;
    if (typeof navigator[i] =  "function") value = navigator[i]();
    else value = navigator[i];
    
    sid += String(value) + ";";
    Die Idee das Resultat der function ( value = navigator[i]()) zu benutzen find ich ja gar nicht so schlecht, im FF gibt es jedoch functionen die Argumente verlangen und so werden leider Fehler geworfen.
    Im IE bringt value = navigator[i]; einen Fehler, nicht wenn ich die Objecte per
    Code:
    if(typeof navigator[i]!="object") sid += String(navigator[i]) + ";"
    ausklammere. Dies ist fehlerfrei im FF + IE8. Vom Gewinn dieser Erweiterungen bin ich nicht so richtig überzeugt, da die Masse der Informationen des navigator-Objektes in strings abliegt (Version, System...) und der 08/15 Nutzer kaum Änderungen in den Browsereinstellungen vornimmt.

  11. #11
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.757

    AW: Browser Fingerprint ID

    Oh - wusste ich nicht. Dann würde ich das ganze noch in einen try... catch stecken...

    Das mit dem Fehler im IE ist irgendwie komisch... aber ohne das String(...) wirft er keinen Fehler...

  12. #12
    Avatar von jspit
    jspit ist offline Lounge-Member
    registriert
    19-06-2009
    Beiträge
    1.712

    AW: Browser Fingerprint ID

    Zitat Zitat von kkapsner Beitrag anzeigen
    Das mit dem Fehler im IE ist irgendwie komisch... aber ohne das String(...) wirft er keinen Fehler...
    Das komische ist vermute ich ein kleiner Bug im IE, verursacht durch Elemente die aus der for-in-Schleife geliefert werden wie navigator.mimeTypes.
    Dies wirft einen Fehler im IE:
    Code:
    if (navigator.mimeTypes) value=String(navigator.mimeTypes);

  13. #13
    Bieber ist offline König
    registriert
    10-12-2007
    Ort
    Erfurt
    Beiträge
    964

    AW: Browser Fingerprint ID

    mal ein kleiner Zwischenbericht:
    Ich hab den Browser Fingerprint jetzt seit ca. 3 Monaten am Laufen um Mutliaccounts zu finden und bin ziemlich zufrieden. Folgender Code ist bei mir im Einsatz:
    Code:
    <script type="text/javascript">
    //<![CDATA[
     function crc16(tstr) { var crc = 0xFFFF;var anz = tstr.length;var iz; for(i = 0; i <anz; i++) { crc = (crc ^ tstr.charCodeAt(i)) & 0xFFFF; for (iz=0; iz < 8; iz++) {crc = crc & 1 ? ((crc >> 1) ^ 0xA001) & 0xFFFF : crc >> 1; }    }return crc;} function SecureId() {var sid = "";for(var i in navigator){sid += i + ":";    if(typeof navigator[i]=="string")sid += navigator[i] + ";"  }  sid += navigator.language ? navigator.language : navigator.userLanguage;  sid += (new Date("2000/1/1")).getTimezoneOffset();  sid += screen.width + "x" + screen.height + "F" + screen.colorDepth;    if(typeof navigator[i]!="object") sid += String(navigator[i]) + ";";      for(i=0;i<navigator.plugins.length;i++)	{		sid += navigator.plugins[i].name;	}  document.getElementById('secure').value=crc16(sid); } SecureId(); 
    //]]>
    </script>
    zwei Probleme gibt es bei der Sache:
    1. Firmennetzwerke
    in Unternehmen wird meist der gleiche Browser auf allen PCs eingesetzt --> wenn verschiedene Personen aus einem Unternehmen die Seite nutzen, nutzt der Fingerprint nichts, auch eine IP-Überprüfung bringt logischerweise nichts
    2. Handy/Smartphone/Spielekonsole
    da kann der Nutzer meist nichts individuell anpassen --> alle haben die gleiche BrowserID

    Um nicht permanent Falschmeldungen zu bekommen habe ich eine whitelist-Tabelle angelegt in welcher ich die problematischen BrowserID's eintrage. In meiner Auswertung gleich ich das dann jeweils ab.
    crazy

    Schach online: Lust auf eine Partie Schach gegen mich? Einfach kostenlos auf onlineschach.eu registrieren und den Bieber suchen.

Ähnliche Themen

  1. Safari Windows Browser: navigator.appName
    Von Com783 im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 11-08-2008, 10:38
  2. Browser zum Rendern zwingen
    Von BrockLanders im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 15-06-2006, 15:55
  3. Verschiedene Browser Versionen zulassen
    Von melodei im Forum Tools und Programme
    Antworten: 15
    Letzter Beitrag: 28-09-2005, 12:12
  4. Mein Browser ist besser als Deiner
    Von RoyalKnight im Forum Smalltalk
    Antworten: 2
    Letzter Beitrag: 10-08-2004, 12:58
  5. Auflösung und Browser feststellen
    Von staxxx im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 05-10-2003, 15:52

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •