Fred: access.log

Moin moin,

ich habe seit langem mal wieder in die access.logs geschaut und bin über solch eine Zeile gestolpert:

144.91.83.0 - - [16/Nov/2021:23:59:54 +0100] "GET /start/index.php/sonstiges/aktiv/aktiv/aktiv/aktiv/2019-Harz/aktiv/2019-Harz/sonstiges/biker.html/sonstiges/biker.html/sonstiges/aktiv/aktiv/aktiv/aktiv/aktiv/aktiv/aktiv/2019-Harz/aktiv/aktiv/sonstiges/sonstiges/aktiv/2019-Harz/ HTTP/1.1" 200 3695 www.gwfb.de "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.8; http://mj12bot.com/)" "-"

Da wird also die /start/index.php aufgerufen, aber was soll der Schrott da hinten dran? Das sind zwar alles existierende Verzeichnisse bzw. Dateien, aber wie kommt dieser Aufruf zustande und wird auch noch sauber mit einem 200er beantwortet?
Das werden wahrscheinlich nur die Betreiber des MJ12bot wissen.

Gruß
Fred

--
I � Unicode
  1. Hallo Fred,

    wie das zustande kommt, kann ich nur spekulieren. Ein Bug?

    Warum das mit 200 beantwortet wird?

    Wenn start/index.php existiert, landet das ganze übrige Geraffel in $_SERVER['PATH_INFO'].

    Rolf

    --
    sumpsi - posui - obstruxi
    1. Hallo Rolf,

      wie das zustande kommt, kann ich nur spekulieren. Ein Bug?

      Den "Bug" hab ich kurzerhand in der Robots.txt ausgesperrt.

      Warum das mit 200 beantwortet wird?

      Wenn start/index.php existiert, landet das ganze übrige Geraffel in $_SERVER['PATH_INFO'].

      Ah okay, soweit gehen meine php Kenntnisse (noch) nicht.
      Fred

      --
      I � Unicode
      1. Hallo Fred,

        es könnte natürlich auch sein, dass Du fehlerhafte Links auf deiner Seite hast. Wenn Du eine an vielen Stellen includierte Navigation hast, die dazu führt, dass in /start/index.php ein Link auf href="sonstiges" statt href="/sonstiges" steht - oder vielleicht auch nur einmal stand, und der Bot hat das gecached - dann kann das Verfolgen dieser Links zu einer solchen URL führen.

        Rolf

        --
        sumpsi - posui - obstruxi
        1. Hallo Rolf,

          nein, die Navigation ist nicht includiert, eine gewöhnliche Liste:
          <li><a href="/aktiv/">Aktivitäten</a></li>
          Fred

          --
          I � Unicode
      2. Tach!

        Wenn start/index.php existiert, landet das ganze übrige Geraffel in $_SERVER['PATH_INFO']. Ah okay, soweit gehen meine php Kenntnisse (noch) nicht.

        Das ist ein Apache-Verhalten. PHP hat damit nichts zu tun, außer dass es eine von vielen vom Apachen bereitgestellte Information über $_SERVER zugänglich macht.

        dedlfix.

        1. Hallo dedlfix,

          Das ist ein Apache-Verhalten. PHP hat damit nichts zu tun, außer dass es eine von vielen vom Apachen bereitgestellte Information über $_SERVER zugänglich macht.

          Dank dir für die Info.

          --
          I � Unicode
        2. Hallo dedlfix,

          Das ist ein Apache-Verhalten.

          Apache macht das, ja. Aber es kommt letztlich aus der CGI Spezifikation. Hat Apache die erfunden?

          Letztlich steht es dann hier aufgeschrieben (von 2004):

          https://www.ietf.org/rfc/rfc3875.html#section-4

          Rolf

          --
          sumpsi - posui - obstruxi
  2. Hello,

    ich vermute ein MOD-REWRITE auf deinem Server, das alle Anfragen (auch auf nicht vorhandene URLs) auf die index.php umleitet. Und dann ein mehrfaches Redirect. Da kann der Fehler sowohl bei Dir, als auch beim Robot liegen.

    Das sieht mir aus, wie das Ende eines Ping-Pong-Spiels zwischen Requester und Responder.

    Man müsste zuerst auch die anderen Requests von der IP kennen.

    So ein Spiel kann sich allerdings auf über mehrere Requester-IPs hinziehen. Gründe hierfür sind ein eigenes Thema.

    Glück Auf
    Tom vom Berg

    --
    Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.
    1. Hallo

      ich vermute ein MOD-REWRITE auf deinem Server, das alle Anfragen (auch auf nicht vorhandene URLs) auf die index.php umleitet. Und dann ein mehrfaches Redirect. Da kann der Fehler sowohl bei Dir, als auch beim Robot liegen.

      Also die .htaccess sieht so aus:

      ErrorDocument 404 /general/404.html
      ErrorDocument 401 /general/401.html
      ErrorDocument 403 /general/403.html
      
      Redirect 301 /start/index.html /start/index.php
      Redirect 301 /start/index.shtml /start/index.php
      
      RewriteEngine On
      RewriteCond %{HTTPS} =off
      RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
      RewriteCond %{HTTP_HOST} !^www\.
      RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
      
      <Files *.inc.php>
          order allow,deny
          deny from all
      </Files>
      

      Man müsste zuerst auch die anderen Requests von der IP kennen.

      Das sind über 6.000 Zeilen im gestrigen access.log

      Fred

      --
      I � Unicode
  3. MJ12bot

    Manchmal dreht der leer (Keine Ahnung ob Fehlkonfiguration oder Programmfehler). Hatte bei dem dergleichen auch schon.

    Den "Bug" hab ich kurzerhand in der Robots.txt ausgesperrt.

    Hm. Ich auch.

    User-agent: SemrushBot
    Disallow: *
    
    User-agent: MJ12bot
    Disallow: *