Spambots übermitteln keine Angaben zum "User Agent"?

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

  • Spambots übermitteln keine Angaben zum "User Agent"?

    Mir ist beim durchforsten meiner Serverlogs aufgefallen, dass alle Spambots, die sich auf meinem Server tummeln, zwar gefälschte Referer, aber keine Angaben zum User Agent übermitteln. Ich weiß nicht wie das bei euch ausschaut, aber offensichtlich gibt es eine ganze Reihe Bots mit dieser "Schwachstelle". Daher habe ich darüber nachgedacht, solche Request zu blockieren.

    Aber natürlich sollen keine echten Nutzer ausgesperrt werden. Was ist eure Meinung dazu? Gute Idee - schlechte Idee? Kennt jemand einen Browser oder OS, dass den "User Agent" NICHT übermittelt?

  • #2
    Hängt vermutlich mehr von den Einstellungen als vom Browser ab. Ich denke per default werden die meisten Browser den User Agent mitschicken. Aber mittels Einstellungen kann man das verändern/unterdrücken

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Theoretisch - ja, natürlich. Aber praktisch habe ich daheim Firefox und Opera durchforstet und keine solche Einstellung finden können. Auch in der Firewall nicht. Outpost kann Header-Daten ändern, schreibt aber "this field was blocked by ..." - das heißt, dass Feld ist trotzdem niemals leer.

      Praktisch kenne ich kein praktisches Beispiel, wo der "User Agent" tatsächlich nicht übermittelt wird. Deswegen frage ich ja.

      Klar - theoretisch kann man sich jeden beliebigen Header basteln

      Kommentar


      • #4
        Für Mozilla /Firefox gibs ein Plug-in, dass das unterdrücken kann, bei Opera geht das angeblich von haus aus (selber nicht getestet)


        An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

        Kommentar


        • #5
          Opera kann es nicht (mehr) von Hause aus. Man kann den User Agent umschalten, aber nicht abschalten. Im Firefox kenne ich mindestens ein Plugin mit dem man sich den ganzen Header nach Gutdünken basteln kann - aber das ist eher für Testzwecke gedacht. Damit würde ich nicht surfen gehen und das auch niemandem empfehlen.

          Hmm... ich habe meine Serverlogs im Zeitraum 1er Woche nochmal durchgesehen und dabei ist mir etwas interessantes aufgefallen.

          Der fehlende User Agent als Kriterium allein reicht offensichtlich nicht. Ich habe zumindest einen russischen Server gefunden, der den User Agent nicht übermittelt hat und scheinbar trotzdem kein Bot war. (alle anderen inklusive der Downloadmanager, Feedreader und Suchmaschinen haben allerdings stets einen gesendet - einige betrachten das scheinbar auch als kostenlose Werbung) Vermutlich betreffen fehlende User Agent Angaben im Header Proxy-Server oder vielleicht Anonymisierungsdienste?

          Allerdings die Kombination aus Post-Request, Referer vorhanden und User Agent fehlt liefert in meinem Versuch 100% Treffer und 0 false positives.

          Kann das jemand anhand anderer Logs bestätigen?

          Kommentar


          • #6
            wenns nur um kontaktformulare o.ä. geht, denke ich kannst du das riskieren. Generell würde ich die gefahr aber nicht eingehen.

            googlebot z.b. kommt afaik auch anonym vorbei. da kann dein mechanismus schnell negative folgen haben.

            Kommentar


            • #7
              da kann dein mechanismus schnell negative folgen haben.
              Und ich kann ja einen Spambot proggen, der sich als IE meldet...
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                japp, das sowieso. und wird auch sicher so praktiziert.

                Kommentar


                • #9
                  Logisch geht's um Kontaktformulare, Foren, et cetera und logisch kann man immer einen neuen, besseren Bot progen. Dass man JEDE Sperre mit entsprechendem Aufwand umgehen kann ist sonnenklar.
                  Mir geht es vielmehr darum, die real existierenden Bots vorübergehend auszusperren, als irgendwelche Fantasieprogramme, die es bis dato gar nicht gibt, oder die zur Zeit nur eine geringe Verbreitung haben.

                  Und Googlebot identifiziert sich via User agent, ebenso wie Yahoo und alle andere Suchmaschinen die mir bekannt sind (habe ich bereits erwähnt). Außerdem schickt der Googlebot keine Formulare ab - also ist das uninteressant, den der Spam kommt nur über Post-Requests.

                  Ein Risiko ist immer dabei - auch das ist trivial. Mir geht es nicht darum das Risiko auszuschließen, sondern darum das Risiko abschätzen zu können. Damit - wenn man das Prinzip auf einem großen Firmenserver mit 10000-50000 Requests pro Tag einsetzen würde - ich vorausschauend sagen kann, mit wie vielen false positives ich rechnen muss und ob sich das dann noch lohnt.
                  Zuletzt geändert von Marcusson; 29.11.2006, 12:48.

                  Kommentar


                  • #10
                    Logisch geht's um Kontaktformulare, Foren, et cetera und logisch kann man immer einen neuen, besseren Bot progen. Dass man JEDE Sperre mit entsprechendem Aufwand umgehen kann ist sonnenklar.
                    Mir geht es vielmehr darum, die real existierenden Bots vorübergehend auszusperren, als irgendwelche Fantasieprogramme, die es bis dato gar nicht gibt, oder die zur Zeit nur eine geringe Verbreitung haben.
                    es ist wohl keine Fantasie, dass Bots und Konsorten einen UA vorgaukeln.

                    Und Googlebot identifiziert sich via User agent, ebenso wie Yahoo und alle andere Suchmaschinen die mir bekannt sind (habe ich bereits erwähnt).
                    Dass du Logs hast, in denen es so ist, schließt nicht aus, dass es auch Fälle gibt, in denen es nicht so ist.

                    Außerdem schickt der Googlebot keine Formulare ab - also ist das uninteressant, den der Spam kommt nur über Post-Requests.
                    Deswegen die Nachfrage, was du sperren willst.

                    Kommentar


                    • #11
                      Dass du Logs hast, in denen es so ist, schließt nicht aus, dass es auch Fälle gibt, in denen es nicht so ist.
                      Okay - aber das musst du mir eigentlich nicht erzählen, denn das ist doch völlig trivial.

                      Mal ein Beispiel zum Verständnis:
                      Das ich 1000 rote Äpfel habe schließt selbstverständliche niemals aus, dass es auch einen blauen Apfel gibt. (das geht gar nicht bei Stichproben) Aber wen interessiert das? Die Frage (bezogen auf Äpfel) wäre ob man mit etwa 80% Sicherheit behaupten kann, dass mehr als 95% der Äpfel rot sind. Was interessiert mich also die theoretische Möglichkeit dass es 1 blauen Apfel gibt? Es interessiert mich nur dann, wenn du mit ausreichend hoher Sicherheit behaupten kannst, dass es die Anzahl der blauen Äpfel mindestens 1% der Gesamtmenge beträgt, weil erst die tatsächliche Existenz einen Einfluss hat. Dann müsste ich entweder eine größere Stichprobe nehmen und somit das Ergebnis absichern, oder aber die These verwerfen.

                      Das interessiert mich also nur in dem Moment, wo du mir ein Log zeigen kannst, in denen es nicht so war - bis dahin ist die Frage leider rein akademisch - theoretisch interessant, aber praktisch irrelevant.

                      Deswegen die Nachfrage, was du sperren willst.
                      Na, wenn es um Spam-Abwehr geht, ...
                      Natürlich Post-Requests an Formulare (hauptsächlich in Foren/Kontaktformularen/Gästebüchern). Und zwar solche Requests, die einen Referer senden, aber keinen User agent.

                      Dabei interessiert mich nicht die Theorie sondern die Praxis, denn theoretisch ist wie immer alles möglich. Also: ich will nicht wissen, was alles sein könnte, sondern was man tatsächlich in der Praxis beobachtet hat.

                      Ich fände es sehr nett und es würde viel helfen, wenn jemand in seine eigenen Server-Logs schauen könnte und hier postet, ob er meine Beobachtung, anhand seiner eigenen Logs bestätigen kann oder nicht. Zur Erinnerung, beobachtet hatte ich auf menem Server, dass Post-Requests mit Referer und ohne User Agent im Header zu fast 100% von Spam-Bots stammen.

                      Der Sinn dahinter ist gaaanz banal: wenn sich eine breite empirische Basis findet, welche diese Beobachtung bestätigt, dann lohnt es sich einen Filter darauf anzusetzen. Bestätigt sich die Beobachtung nicht, dann lohnt es nicht.

                      Das ist ein Aufwand von maximal 5-10 Minuten und es könnte mir und anderen Nutzern eventuell helfen, Spam-Angriffe auf einigen stark belasteten Servern zu reduzieren.

                      Selbstverständlich würden die bösen Jungs früher oder später nachrüsten, falls man das massenhaft filtern würde - aber nicht heute Abend, und selbst wenn es "nur" ein paar Monate dauert, hat man zumindest Zeit gewonnen und die Messlatte ein Stück höher gelegt.
                      Zuletzt geändert von Marcusson; 29.11.2006, 18:36.

                      Kommentar


                      • #12
                        "eine breite empirische Basis"? Ist ja lächerlich! Du redest hier von einem einfachen
                        if (count($_POST) && !empty($_SERVER['HTTP_REFERER'] && empty($_SERVER['HTTP_USER_AGENT'])).

                        Mit Spamerkennung hat das zwar nichts zu tun, denn Spam definiert sich über den Inhalt, aber wenn Headerdaten für dich ein Ausschlußkriterium sind, dann nutze es doch.

                        Massentauglich ist es keinesfalls, also kein Grund für mich, meine Logs zu sichten.

                        Kommentar


                        • #13
                          Mein Gott - dann lass es eben bleiben. Kein Grund sich aufzuregen.

                          Selbstverständlich geht's nur um 1 zusätzliche Filtermöglichkeit und nicht um einen vollständigen Spam-Filter. Selbstverständlich definiert sich Spam über Inhalt - aber wer will bestreiten, dass der Inhalt mit technischen Mitteln erzeugt wird, die technischen Einschränkungen unterliegen?
                          Und warum sollte man das Wissen darüber welche Eigenschaften diese technischen Mittel aufweisen nicht vertiefen und ggf. auch ausnutzen?

                          Warum sollte die Menge an Code, die man dafür braucht, ein Kriterium sein? Wenn es mindestens 1 Fall gibt, in dem diese 1 Zeile bereits ausreicht um 100% der Spam-Requests auszusondern ohne auch nur einen einzigen false positive, dann ist das meiner Meinung nach lohnend näher untersucht zu werden. Und dass es leicht zu implementieren ist, betrachte ich eher als Bonus anstatt als Hindernis.

                          Kommentar


                          • #14
                            Ich glaub so langsam hat hier jeder mitbekommen, dass du deine Methode schon als 100%ig ansiehst und nun unbedingt die Bestätigung haben willst. - die dir aber hier niemand so wirklich geben will.
                            Gründe haben wir genannt. Darauf eingehen willst du nicht. Gut.

                            Kommentar


                            • #15
                              Was ist so schwer daran?

                              Die Frage war, "kennt jemand einen Browser oder OS, dass den "User Agent" NICHT übermittelt" und aber einen Referer sendet bei einem Post-Request. Ganz einfach.

                              Die Antworten die ich bekam lassen sich kurz zusammenfassen als "könnte sein", "möglich wär's", "gibt's bestimmt" und "das interessiert mich sowieso nicht" gefolgt von "das ist lächerlich".

                              Was wäre denn so kompliziert gewesen an den Antworten "Nein, kenne ich nicht", oder "ja, denn: ich weiß der Browser X sendet mit OS Y einen Referer aber keinen User agent", oder vielleicht sogar: "ich wusste es nicht, habe aber in meinen Logs nachgesehen und keinen false positive finden können - die Idee könnte OK sein" bzw. "ich wusste es nicht, habe aber in meinen Logs nachgesehen und mindestens Z mal einen false positive gefunden - die Idee ist also Müll".

                              Kommentar

                              Lädt...
                              X