it-swarm.com.de

Warum blockieren viele Websites Anforderungen von allgemeinen HTTP-Bibliotheken durch den Benutzeragenten?

Beim Schreiben von Spinnen ist mir aufgefallen, dass viele Sites einen 403-Fehler zurückgeben, wenn ich sie aus gängigen HTTP-Softwarebibliotheken ansteuere, es sei denn, ich überschreibe den von der Bibliothek verwendeten Standard-Header User-Agent manuell.

Das Economist-Magazin blockiert beispielsweise meine Anforderungen, wenn ich die Standard-Benutzeragenten-Header einer beliebigen Python-HTTP-Bibliothek verwende:

$ curl http://www.economist.com/ -A python-requests/2.9.1 --write-out "%{http_code}\n" --silent --output /dev/null
403
$ curl http://www.economist.com/ -A python-Urllib/2.7 --write-out "%{http_code}\n" --silent --output /dev/null
403

Wenn ich jedoch einen Browser-Benutzeragenten fälsche, einen Unsinn-Benutzeragenten einbinde oder einen leeren Benutzeragenten bereitstelle, nimmt er meine Anfrage gerne an:

$ curl http://www.economist.com/ -A "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36" --write-out "%{http_code}\n" --silent --output /dev/null
200
$ curl http://www.economist.com/ -A '' --write-out "%{http_code}\n" --silent --output /dev/null
200
$ curl http://www.economist.com/ -A banana --write-out "%{http_code}\n" --silent --output /dev/null
200

The Economist ist die größte Seite, auf die ich mit diesem Verhalten gestoßen bin, aber sicherlich nicht die einzige - dieses Verhalten scheint häufig zu sein. Warum? Welchen Zweck hat diese Sperrung aus Sicht der Website? Ist es eine (fehlgeleitete und unwirksame) Sicherheitsmaßnahme? Ein Versuch, von Bots aussagekräftigere Benutzeragenten zu erhalten? (Aber zu welchem ​​Zweck?) Oder motiviert etwas anderes diese Filter?

4
Mark Amery

Dies liegt an der Anzahl der Personen, die diese HTTP-Bibliotheken in ihre eigene Software einbetten, um Inhalte von anderen Websites zu entfernen, was häufig aus Gründen von Urheberrechtsverletzungen geschieht. Gut gemachte Crawler, die legitim sind und für einen bestimmten Zweck entwickelt wurden (wie Archiver-Bots und Such-Bots), haben ihre eigenen benutzerdefinierten User-Agent-Zeichenfolgen, um sie eindeutig zu identifizieren. Auf dieser Grundlage haben viele, die diese Art von Einschränkungen auf ihre eigenen Websites anwenden, das allgemeine Gefühl, dass alle Verbindungen, die die standardmäßige Benutzeragentenzeichenfolge aus diesen Bibliotheken verwenden, nicht für einen legitimen Zweck hergestellt wurden und wahrscheinlich versehentlich entdeckt wurden Dies führt dazu, dass der Entwickler den Webmaster kontaktiert.

3