Mailinglisten-Archive |
Mario Haßler wrote: > > Sicher? Wie gesagt, ich vermute, dass der Angreifer lediglich die > Header abfragt. Dies kann ihm der Apache-Server beantworten, bevor > auch nur ein PHP-Skript aufgerufen wird, und beispielsweise den > Return-Code 404 liefern, wenn es die angeforderte Seite nicht gibt > (und es auch keine Server-Regel gibt, die für den Fall etwas anderes > vorsieht). Wenn dein Apache eine Seite nicht findet und deswegen den Code 404 rausschmeißt, dann kann er dies tun bevor er ein php-Skript ausgeführt hat, ja, richtig. Er MUSS es sogar vorher tun, denn das php-Skript hat er ja offensichtlich vorher nicht gefunden und wird es dementsprechend auch nicht ausführen. Wenn Apache aber ein Skript findet, dann kann der Apache die Anfrage NICHT so schnell beantworten. Wenn die Seite nicht existiert, dann ist der code 404, das ist klar, aber nur weil das Skript da ist, heißt es noch lange nicht, dass der code 200 ist. Das php-Skript könnte noch eine Authentifizierung verlangen (code 401: Unauthorized). Das Skript verwaltet vielleicht mehrere Seiten, die per url-Parameter ausgewählt werden. In diesem Fall kann erst das php-Skript 404 ausgeben. (In php-code: <?php header("HTTP/1.1 404 Not Found"); ?> ). Die header werden dann gesendet, wenn dein php-Skript die erste Ausgabe erzeugt: <?php echo "bla"; head(...); // geht nicht, da bereits etwas ausgegeben wurde ?> Bevor du eine Ausgabe gemacht hast, ist aber noch alles drin. (Beliebter Fehler: Whitespacezeichen vor der ersten php-Klammer (<?php). Dann das ist auch eine Ausgabe). > > Wie kann ich denn beeinflussen, welche Zugriffe in die Log-Dateien > (access.log, error.log) kommen und welche nicht? (Von der Seite habe > ich das noch gar nicht betrachtet.) Da rate ich dir mal zu der Doku von Apache. Erstmal musst du dir aber sowieso überlegen, nach welchen Kriterien du denn entscheiden willst. Eine Möglichkeit wäre es Apache's Fehlerprotokoll komplett zu deaktivieren und dann für einzelne Ordner in denen deine Projekte liegen wieder zu aktivieren. > > Mmh... von einer "Teergrube" (oder engl. "tarpit") habe ich vor Jahren > mal was gehört, aber das war im Zusammenhang mit Mail-Servern, als > Schutz vor Massen-Mailings (Prinzip: Je mehr Mails pro Zeiteinheit > ausgeliefert werden sollen, desto länger verzögert der Mail-Server). Ist ja auch das selbe Prinzip. Der Ausdruck Teergrube ist auch im englischen zu dem Thema nicht unüblich. http://de.wikipedia.org/wiki/Teergrube_(Informationstechnik) > > Nein, gemeint war: dass der eine Angreifer nach ein, zwei Adressen > aufgibt und nicht seine ganze Liste mit 20 bis 30 Adressen auspro- > biert (das error.log-Beispiel war nur ein kleiner Ausschnitt!). Eher unwahrscheinlich. Vermutlich stecken da irgendwelche zusammen gehackten einfachen Skripte dahinter, die deine Antwortgeschwindigkeit nicht messen und sich auch nicht errechnen, ob es sich weiterhin bei dir lohnt. Aber ein Versuch wäre sicherlich ganz interessant. Berichte doch mal von deinen Ergebnissen. > > Danke nochmals. > > Viele Grüße, > > Mario Haßler Yannik
php::bar PHP Wiki - Listenarchive