Fehlt der User-Agent im HTTP-request gültig?
Wir haben festgestellt, dass wir von Zeit zu Zeit erhalten Sie eine HTTP-Anforderung, ohne dass ein Gültiger Benutzer-Agent-Zeichenfolge. Gibt es eine gültige real-world case für die Annahme dieser Art von HTTP-request?
also Warum würden wir nicht automatisch blockieren alle IP ' s von denen diese Art der Anfrage eingegangen ist?
UPDATE
Meine Absicht mit dem Satz "real-world" - war es, zu zeigen, daß ich nicht zu Fragen, was technisch kann oder nicht geschehen kann. Offensichtlich ist es möglich, um HTTP-Anforderungen zu senden, ohne einige Header. Ich Frage mich, was "real-world" - Fall müssten Sie für die Möglichkeit dieser Art der HTTP-Anfrage in deinen server.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, viele Menschen verwenden Sie HTTP-Anfragen ohne User-Agent-vor allem, wenn Sie verwenden eine API, um die Anforderung durchzuführen.
Joe's iPod
) und Sie könnte auch leer es aus.User-Agent
header ist optional in RFC 2616. Es SOLLTE werden von clients verwendet, aber es ist nicht ERFORDERLICH verwendet werden. Alle großen third-party-Browser/clients verwenden, aber benutzerdefinierte Anwendungen/APIs/bots/etc möglicherweise nicht. Es gibt Webserver, die alter Antworten, oder sogar Aufträge ablehnen (was ärgerlich ist), basierend auf derUser-Agent
zur Verfügung gestellt (oder deren fehlen).Wie gesagt in RFC 7231 (aber fast den gleichen Absatz finden in RFC2616):
Das Schlüsselwort hier ist SOLLTE. Und ja, es gibt ein RFC, der definiert, was das Wort bedeuten soll, RFC 2119:
So, obwohl die Agenten, die nicht senden, User-Agent nicht Folgen, was kann als best practice gilt, Sie nicht gegen irgendeine Regel (rfc). Also, meiner Meinung nach, es ist nicht wirklich ein Gültiger technische Grund, Sie zu blockieren.
User-Agent
ist unbekannt/unerkannt, die lästig sein kann. Dann haben Sie, um eine benutzerdefinierteUser-Agent
nachahmt, ein bekannter Wert, den der webserver akzeptieren.