Ankündigung

Einklappen
Keine Ankündigung bisher.

Crawlerabwehr

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Crawlerabwehr

    Guten Abend,

    ich beschäftige mich seit einiger Zeit mit der Problematik, dass Websites von (relativ einfach geschriebenen) Crawlern bzw. Spidern kopiert werden, dann anschließend das Design verändert wird und schließlich die Inhalte auf neue Domains hochgeladen werden, wo man die Inhalte letztenendes vor lauter Werbung gar nicht mehr sehen kann. Da rechtliche Maßnahmen gegen solche "Angriffe" leider sehr aufwendig sind, möchte ich technische Schutzmaßnahmen implementieren. Natürlich ist mir bewusst, dass es in diesem Bereich keine 100%-sichere Technik geben kann. Da die meisten dieser Bot-Programmierer jedoch erfahrungsgemäß über einen relativ niedrigen Wissensstand verfügen oder ihre Systeme sehr einfach halten und auf Klasse statt Masse setzen, sollte es mit genügend Rafinesse durchaus möglich sein, derartige Probleme wesentlich zu minimieren.

    Im folgenden werde ich nun mein bisher erarbeitetes Konzept vorstellen:
    Requests welche keinen User-Agent und keinen Accept-Header beinhalten werden sofort abgelehnt, da normale Browser sowie jeder qualitativ hochwertige Bot diese Header mitsendet.

    IPs die bereits mehr als x (5 < x < 30) Requests innerhalb von 5 Minuten absenden und keine Cookies akzeptieren, müssen in unregelmäßigen (ca. alle 20-100) Requests ein Captcha abtippen. Des Weiteren sind für Clients die keine Cookies akzeptieren nicht mehr als 30 Requests pro 10 Minuten zulässig. Sinnvoll wäre es an dieser Stelle sicher auch, zu betrachten, wie konstant Requests von diesem Client auftreffen. (Normale Nutzer besuchen manche Seiten, wie etwa Übersichten, öfters, wohingegen Bots dies nur tun, wenn Sie speziell darauf programmiert werden.). Auch wenn relativ wenige Requests über einen langen Zeitraum relativ konstant auftreffen, d.h. etwa auch mitten in der Nacht wäre dies ein Sperrgrund, wobei natürlich kein User gesperrt werden sollte, der zufällig nachts um drei vorbeischaut. Für die Betrachtung eines größeren Zeitraums habe ich bisher leider keine brauchbaren Ansätze, weswegen ich hier auf die php.de-Community setze

    Da der Googlebot natürlich unbedingt von diesen Aktionen ausgeschlossen bleiben muss, überprüfe ich über DNS, ob der Request von *.googlebot.com kommt.

    Weitere Ansätze oder anderweitige Anregungen sind erwünscht!
    root@php.de:~$ rm -rd /


  • #2
    Mh ist mir jetzt noch nicht untergekommen das eine Seite kopiert wieder mit Werbung ins Netz gestellt wird. Aber reicht da meistens nicht wenn nur ein paar ganz wenige Seiten gecrawled werden? Ich mein Design und Startseite sind mit einem Seitenaufruf schon komplett kopiert ...

    Und so einfach mit 30 Requests pro 10 Minuten ist das auch nicht abgetan. Ich wette ich hab deutlich mehr Requests in 10 Minuten wenn ich z.b. nach etwas suche. Und was zählst du zu Request, nur die Anfragen an ein PHP Skript oder auch sowas wie Bilder/CSS/JS?

    Kommentar


    • #3
      Es geht weniger darum, Design und Startseite zu kopieren, als darum, dass tausende Seiten Inhalt kopiert werden. (In meinem Fall über 8.000 Unterseiten).

      Als Request wird nur gezählt, was eine "dynamische Ressource" aufruft, d.h. lediglich PHP-Skripte sowie mit Hilfe von PHP generierte Grafiken und Audiodateien.

      Die "30 Requests pro 10 Minuten"-Sperre ist lediglich für Clients gedacht, die keine Cookies akzeptieren. Ich gehe davon aus, dass der Großteil aller Webnutzer Cookies akzeptiert und deshalb eine Ablehnung durchaus ein gewisser Indikator für einen Bot ist.
      root@php.de:~$ rm -rd /

      Kommentar


      • #4
        Kleine Idee von mir: Ich bezweifle dass diese Bots sämtliche Bilder mit auf ihren Server kopieren, weshalb du z.b. auf jeder seite ein 1*1px bild (recht weit oben) einbinden könntest, welches per url-rewriting auf eine php datei zeigt, die Wiederum in die session schreibt dass der client bilder abruft - ruft nun jemand mehrere Seiten ohne Bilder zu betrachten ab, wäre das villeicht ein Anhaltspunkt?

        Kommentar


        • #5
          Eine sehr gute Idee! Natürlich muss man hierbei darauf achten, dass der Cache-Control-Header sicherstellt, dass das Bild nicht zwischengespeichert wird, aber dies stellt keine Herausforderung dar. Vielen Dank für deinen Beitrag!
          root@php.de:~$ rm -rd /

          Kommentar


          • #6
            Und was machst du wenn der Content-Thief-(Ro)Bot den Google-Cache nutzt um deine Seite zu kopieren ?
            [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

            Kommentar


            • #7
              Ich weiss ja nicht wie Barrierefrei das ganze sein soll und ob du auf User ohne aktiviertes Javascript verzichten kannst. Wenn ja, dann könnte man damit einiges anstellen. Content per AJAX nachladen bspw. oder via JS überhaupt erst lesbar machen. Da müsstest du natürlich den Googlebot wieder beachten und der Einwand von tr0y ist auch nicht ohne.

              Kommentar


              • #8
                Imho viel zu viel Aufwand für wenig Erfolg. Ich denke wenn dann werden Seiten doch gezielt kopiert, entsprechend kann auch der Bot entsprechend angepasst werden.

                Kommentar


                • #9
                  Solange du den Google-Robot nicht aussperrst ist dein "Copy everything"-Tor sperrangelweit offen. Ganz gleich was du mit anderen Robots anstellst, wollte ich deine Seite auslesen würde ich den Google-Cache dazu nutzen. Da kriegst du nichtmal mit welche IP da klaut.
                  [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                  Kommentar


                  • #10
                    Den Googlebot selbst muss ich doch gar nicht sperren?

                    Wenn ich einen Cache-Control-Header mitsende bzw. entsprechende Meta-Tags einsetze, dann werden meine Inhalte nicht mehr im Googlecache gespeichert.
                    root@php.de:~$ rm -rd /

                    Kommentar


                    • #11
                      ROBOT [ NOARCHIVE ] => Robot Caching
                      Cache-Control [ * ] => Browser Caching

                      wenn ich mich richtig erinner..
                      [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                      Kommentar


                      • #12
                        Du hast natürlich Recht tr0y. Danke!

                        Spielen wir das Szenario doch einfach mal weiter. Im Google-Cache kannst du dich nicht bedienen, wie würdest du weiter vorgehen?
                        root@php.de:~$ rm -rd /

                        Kommentar


                        • #13
                          Mich per cURL oder Snoopy als Mozilla Firefox browser ausgeben und dir in jeder Hinsicht vorgaukeln ich sei ein normaler Browser.
                          [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                          Kommentar


                          • #14
                            Wenn du z.b. den Google Cache aussperrst (und andere Suchmaschinencrawler außer Google) dann nimmst du dir selbst aber auch Möglichkeiten. Grad in vielen Suchmaschinen präsent zu sein und z.b. auch im Google Cache zu sein ist meiner Meinung nach viel wichtiger als wenn irgendwo ne Kopie im Web zu finden ist. Wenn du deine Seite richtig betreibst wirst du auch in Google weiter oben bleiben und entsprechend gefunden werden.

                            Kommentar


                            • #15
                              Zitat von tr0y Beitrag anzeigen
                              Mich per cURL oder Snoopy als Mozilla Firefox browser ausgeben und dir in jeder Hinsicht vorgaukeln ich sei ein normaler Browser.
                              Warum so kompliziert? Für den Firefox gibts Addons, die alles downloaden, was nicht bei drei auf den Bäumen ist. Da sie Bestandteil des Browsers sind, kann auch kein Server(-Script) erkennen, ob jetzt der Inhalt nur abgegrast oder "regulär angesurft" wird.

                              Zitat von sharpx Beitrag anzeigen
                              ... Spielen wir das Szenario doch einfach mal weiter.
                              Wenn du Inhalte hast, die der Öffentlichkeit nicht zugänglich sein sollen, dann mach sie nichtöffentlich. Erlaube Zugang nur per Login mit vorheriger Anmeldung (entsprechende User-Daten verlangen und notfalls prüfen).

                              Irgendwelche Blödeleien mit Heuristik-Ansätzen ("böse-Clients-erkennen") oder JavaScript-gestützte "Inhaltsschutz"-Versuche verprellen nur die anständigen User.
                              Wenn man die Wurst schräg anschneidet, hält sie länger, weil die Scheiben größer sind.

                              Kommentar

                              Lädt...
                              X