Warum gab es plötzlich so viele 400 Anfragen in meinem Zugriffsprotokoll?


10

Unten ist ein kleiner Teil meines access_log

118.186.8.50 - - [19/Dec/2011:22:42:57 +0800] "-" 400 0 "-" "-"
05
118.186.8.50 - - [19/Dec/2011:22:42:57 +0800] "-" 400 0 "-" "-"
06
118.186.8.50 - - [19/Dec/2011:22:42:57 +0800] "-" 400 0 "-" "-"
07
118.186.8.50 - - [19/Dec/2011:22:42:57 +0800] "-" 400 0 "-" "-"
08
118.186.8.50 - - [19/Dec/2011:22:42:57 +0800] "-" 400 0 "-" "-"
09
220.173.136.39 - - [19/Dec/2011:22:43:22 +0800] "-" 400 0 "-" "-"
10
220.173.136.39 - - [19/Dec/2011:22:43:22 +0800] "-" 400 0 "-" "-"
11
220.173.136.39 - - [19/Dec/2011:22:43:22 +0800] "-" 400 0 "-" "-"
12
220.173.136.39 - - [19/Dec/2011:22:43:22 +0800] "-" 400 0 "-" "-"
13
220.173.136.39 - - [19/Dec/2011:22:43:22 +0800] "-" 400 0 "-" "-"
14
220.173.136.39 - - [19/Dec/2011:22:43:22 +0800] "-" 400 0 "-" "-"

Und das Volumen war sehr groß, einige wie einhunderttausend dieser 400 Anfragen pro Sekunde. Und ich bin mir ziemlich sicher, dass es in diesem Zeitraum keine Fehler auf meiner Website gibt. (Kein Fehlerbericht und ich habe den Quellcode nicht geändert.)

Antworten:


5

Jemand hat Ihren Server verwirrt . Siehe auch Wikipedia .

Grundsätzlich müssen schnelle Blöcke ungültiger Daten gesendet werden, um festzustellen, ob etwas kaputt geht.

Nginx ist so eingestellt, dass ein Fehler von 400 zurückgegeben wird, wenn keine Anforderungsdaten gesendet werden.

Mach dir keine Sorgen. Nginx kann sie einfach für immer abprallen lassen, ohne ins Schwitzen zu geraten.


Das einzige, worüber er sich Sorgen machen muss, sind die Protokolldateien, die Speicherplatz belegen. Hier ist eine ordnungsgemäße Protokollrotation hilfreich.
Justin Pearce

Selbes Problem hier. Die Anzahl der verschiedenen IP-Adressen macht einen Angriff (Fuzzing) meiner Meinung nach nicht sehr wahrscheinlich. Immer noch auf der Suche nach einer besseren Erklärung.
Oliver

2

Überprüfen Sie, ob die IP-Adresse, die den 400 verursacht, Google Chrome verwendet. Chrome verwendet die Vorverbindung, um mehrere Verbindungen mit dem Server herzustellen und diese zu schließen, wenn sie nicht verwendet werden.

Da in der Verbindung keine Anforderung erfolgt, zeichnet nginx diesen Fehler auf.


Ich sehe hier das gleiche Problem und habe genau das gleiche Protokolldateiformat, daher gehe ich davon aus, dass das OP die Standardeinstellung nicht geändert hat. Dies bedeutet, dass die Benutzeragentenzeichenfolge protokolliert wird - es kommt nur so vor, dass sie keinen Wert enthält. Ich bin mir also nicht sicher, wie ich überprüfen soll, ob diese Clients Chrome verwenden. Ich selbst konnte diesen Fehler mit Chrome 26 gerade nicht im Protokoll reproduzieren. Irgendwelche anderen Hinweise?
Oliver

Der Benutzeragent wird als Anforderungsheader gesendet, es sei denn, / bis eine Anforderung gestellt wird, hat nginx keine Möglichkeit, die Zeichenfolge des Benutzeragenten zu kennen und zu protokollieren. Sie können jedoch andere Protokolldatensätze überprüfen, die von dieser IP-Adresse stammen, und wenn tatsächlich eine Anfrage von diesem Client gestellt wurde, erfahren Sie, ob es sich um Chrome handelt oder nicht.
Ivan Anishchuk
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.