Announcement

Collapse
No announcement yet.

spider ermitteln

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • spider ermitteln

    Hallo Leute,

    ich bin gerade dabei meine Seite mit einer ordentlichen Statistik zu erweitern. Das Problem dabei ist leider das auch Spider auf meine Seite zugreifen ( nur ein Problem der Statistik ). Nun gibt es ja die Möglichkeit diese durch die robots.txt auszuschliessen. Aber gerade das möchte ich nicht, die Spider sollen auch weiter auf meine Seite zugreifen können. Ich würde schon gerne erfassen wie ein Spider wann und auf welche Seite zugreift.

    Aber wie kann ich ein Spider von einem 'normalen' Besucher unterscheiden?
    In der robots.txt geht das ausschliessen ja über: User-agent ... aber wenn ich die über php abfrage ( $_SERVER['HTTP_USER_AGENT'] ) steht da dann der verwendete Browser drinn..

    Etwas anderes was ich noch gefunden hatte war das erstellen einer Tabelle in dem alle Spiders mit der IP gespeichert wurden. Allerdings kann ich mir nicht vorstellen das dies die einzige Lösung sein soll, und ich dann durchgehend eine weitere Tabelle pflegen soll.

    Danke und Gruß,

    iPixi

  • #2
    Aber wie kann ich ein Spider von einem 'normalen' Besucher unterscheiden?
    sinnvoll -> gar nicht

    Etwas anderes was ich noch gefunden hatte war das erstellen einer Tabelle in dem alle Spiders mit der IP gespeichert wurden.
    Selbst das dürfte nicht erfolgversprechend sein

    Einige kann man am Referrer erkennen....aber nicht alle
    Zuletzt editiert von Christian Marquardt; 14.07.2008, 21:11.
    Christian

    Comment


    • #3
      Danke Christian für die schnelle Antwort ( auch wenn sie mir nicht wirklich weiter hilft, aber ich sehe wenigstens, es befasst sich jemand damit ).
      In der Zwischenzeit war ich mal einen Spaziergang machen, und habe mir das dabei noch mal durch den Kopf gehen lassen und dabei eine vielleicht brauchbare Lösung gefunden.

      Ich schreibe eine robots.txt bei dem ich ein Verzeichnis den Zugriff verweigere. In meiner Footer-Datei ( in welcher ich die Statistik schreibe, die es auch nur ein mal im System gibt ) include ich nun eine Datei aus dem geschützten Verzeichnis. Also im Klartext: Erst versucht die Datei aus dem geschützen Verzeichnis die Statistik zu schreiben und danach die ungeschützte. Wenn die Datei im geschützten Verzeichnis aufgerufen werden kann, handelt es sich ja nicht um einen Spider oder so.

      Hui, ich hoffe ich habe das mit der robots.txt auch richtig verstanden. Aber hier mal mein eingesetzter Code:

      spiders.txt:
      Code:
      User-agent: *
      Disallow: /spider/
      footer.php:
      PHP Code:
          include_once($_SERVER['DOCUMENT_ROOT'] . '/db/statistik/put.php');

          
      $zeitstempel time();
          
          include(
      $_SERVER['DOCUMENT_ROOT'] .  '/spider/footer.php'); /* Versucht eine Datei aus dem geschützen Bereich zu includen */
          
          
      $ip $_SERVER['REMOTE_ADDR'];
          
      $seite $_SERVER['PHP_SELF'];
          
          
      statistik_put($ip$seite$zeitstempel); 
      spider/footer.php => also die Datei aus dem geschützten Bereich:
      PHP Code:
          include_once($_SERVER['DOCUMENT_ROOT'] . '/db/statistik/put.php');
          
          
      $ip $_SERVER['REMOTE_ADDR'];
          
      $seite $_SERVER['PHP_SELF'];
          
      statistik_put($ip$seite$zeitstempel
      Mit Hilfe von der Variable zeitstempel kann ich sicherstellen das ich dann nicht zwei Einträge in der Tabelle habe

      Ich hoffe nur das funktioniert auch. Da muss ich wohl abwarten und schauen was sich in der Statistik tut. Oder hat jemand von euch damit schon Erfahrung??

      Das erste durchforsten der error_log zeigt wenigstens keine Fehler beim besuch von einem normalen Besucher. Kann somit beruhigt in der Praxis getestet werden

      Comment


      • #4
        Klartext: Erst versucht die Datei aus dem geschützen Verzeichnis die Statistik zu schreiben und danach die ungeschützte. Wenn die Datei im geschützten Verzeichnis aufgerufen werden kann, handelt es sich ja nicht um einen Spider oder so.
        Wohl nicht, da ja nicht der Spider in die Datei schreibt, sondern dein PHP-Code. Und der kann das immer, wenn die Seite aufgerufen wird, egal von wem. Dein PHP-Code greift auf die Verzeichnisse zu, nicht der Spider.
        Zuletzt editiert von Christian Marquardt; 15.07.2008, 07:03.
        Christian

        Comment


        • #5
          Hallo iPixi,

          mal zur Erläuterung:
          Eine robots.txt basiert immer auf dem "Guten Willen" des Robots. Sprich es ist sowas wie eine freiwillige Selbstkontrolle. Der "gute" Robot liest also die robots.txt und durchsuchst sie nach einem Agent mit dem er sich selbst identifiziert - dieser hat nichts mit dem zu tun was in $_SERVER['HTTP_USER_AGENT'] übergeben wird - und richtet sein Suchverhalten danach aus. Der "böse" Robot ignoriert die robosts.txt oder er durchsucht gerade die "gesperrten" Verzeichnisse, da er dort "schützenswerte" Daten vermutet.
          Und wie Christian schon sagte, ein Eintrag in der robots.txt wird niemals dein PHP davon abhalten eine Datei aus diesem Verzeichnis zu includieren, nur weil der Client ein Robot ist.
          Einzige Chance für die "Guten" ist das Prüfen des tatsächlichen User-Agents, also $_SERVER['HTTP_USER_AGENT']. Für Google, Yahoo, MSN steht da z.B. sowas in der Art drin:
          Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com ...
          msnbot/1.1 (+http://search.msn.com/msnbot.htm)...
          Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/...
          Für die "Bösen" hilft eh nur eine IP-Liste und das wird ein endloses Katz- und Mausspiel, da die ja nicht wollen das sie geblockt werden...

          Zu guter Letzt würde ich dir noch davon abraten die Robots schon beim Seitenaufruf zu erkennen und dann den Seiteninhalt anzupassen (auch wenn es nur ein Scriptaufruf ist). Die großen SuMas reagieren sehr empfindlich, wenn der "normale" User etwas anderes zu sehen bekommt, als der eigene Robot. Hier wird sofort Manipulation unterstellt und mit Abwertung im Ranking abgestraft. Du solltest also erst in deinem Analyse-Tool versuchen die Robots rauszufiltern.

          Gruß Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment


          • #6
            Moin,

            danke Leute für die Antworten, auch wenn sie mir nicht wirklich gefallen ;-)

            Dein PHP-Code greift auf die Verzeichnisse zu, nicht der Spider
            Dann bringt es wohl auch nichts wenn ich die Datei über 'Ajax' aufrufe, weil dann JavaScript auf die Datei zugreift und nicht der Spider???

            Ich denke auf das identifizieren der bösen Spider kann ich verzichten, das ist mir dann zu viel Aufwand.

            Gruß,

            iPixi

            Comment


            • #7
              Dann bringt es wohl auch nichts wenn ich die Datei über 'Ajax' aufrufe, weil dann JavaScript auf die Datei zugreift und nicht der Spider???
              jooo, so isses
              Christian

              Comment


              • #8
                Originally posted by iPixi View Post
                ...Dann bringt es wohl auch nichts wenn ich die Datei über 'Ajax' aufrufe, weil dann JavaScript auf die Datei zugreift und nicht der Spider???...
                Originally posted by Christian Marquardt View Post
                jooo, so isses
                Naja nicht ganz, es liegt wieder in der Entscheidung des Spiders, ob er das JS ausführt oder nicht. Die meisten SuMa-Bots führen allerdings keinen Javascript-Code aus. Aus der Sicht könnte dir das schon helfen. Jedoch kann man sich nicht 100%ig darauf verlassen und würde auch Nutzer mit deaktiviertem JS nicht erkennen.

                Gruß Falk
                Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                Comment


                • #9
                  Moin euch beide!

                  Danke das hilft mir nun weiter!! So kann ich nun wenigstens einige Spider/Bots ausfiltern.

                  Wer auf meine Seite mit deaktivierten JS kommt, kann eh nicht viel zu sehen, da 90% auf Ajax gecodet sind. ( In ferner Zukunft wenn ich mal mit der Seite fertig bin, kann ich vielleicht rücksicht nehmen, aber bis dahin keine Chance. Ich nehm schon Rücksicht auf IE, das muss reichen ;-) )

                  Supi, das ist eine einfache Umsetzung um einen Teil von Spiders zu identifizieren. Zwar nicht alle, aber besser ein paar als keine =)

                  Danke euch

                  iPixi


                  P.S.: Es gibt für so viel Blödsinn eine Norm, wieso auch nicht für Spiders??

                  Comment


                  • #10
                    Die meisten SuMa-Bots führen allerdings keinen Javascript-Code aus.
                    Kann ich so nicht bestätigen.....URLs die per Javascript aufgrufen werden, werden auch von diesen gefunden. Ähhh die rechte Maustaste werden die Bots wohl weniger dekativieren
                    Christian

                    Comment


                    • #11
                      Originally posted by Christian Marquardt View Post
                      Kann ich so nicht bestätigen.....URLs die per Javascript aufgrufen werden, werden auch von diesen gefunden. ...
                      Hallo Christian,

                      das ist mit Sicherheit eine andere Sache und fällt eher unter die Rubrik Sitelinks.
                      Zitat von Google:
                      Sitelinks sind zusätzliche Links, die Google mitunter aus dem Inhalt von Websites erstellt, um Nutzern die Navigation zu Ihrer Website zu erleichtern. Google generiert diese Sitelinks in regelmäßigen Abständen aus dem Content Ihrer Website.
                      Wenn in einem JavaScript-Code also eine gültige URL enthalten ist - ala onclick="window.open('http://meineseite.de'..." - dann wird der Bot diese, wie du selbst schreibst, FINDEN und ihr folgen. Ich bezweifle jedoch, daß er tatsächlich den JavaScript-Code ausführt.

                      Gruß Falk
                      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                      Comment

                      Working...
                      X