Wie implementiere ich Anti-Scraping-Mechanismen für meine Amazon S3-basierte Site?

801
Avinash

Ich habe ein paar statische Webseiten, die auf Amazon S3 gehostet werden und sehr häufig aktualisiert werden. Ich möchte ein paar Anti-Scraping-Mechanismen implementieren, wie das Verbot von IPs, die zu viele Anfragen machen oder Anfragen erscheinen, die als Roboter erscheinen. Ich weiß, dass nichts dumm ist, aber ich möchte ihnen nur etwas Widerstand bieten und ihre Arbeit schwierig machen. Ich habe verstanden, dass es eine Möglichkeit gibt, IP-Adressen in der Bucket-Policy auf die schwarze Liste zu setzen, aber es gibt eine dynamische Möglichkeit, dies zu implementieren, z es für eine bestimmte Zeit. Oder sowas ähnliches.

-3
Verwenden Sie vorhandene Softwarepakete, die diese Funktion Ihrer Website hinzufügen Ramhound vor 7 Jahren 2
Welche Softwarepakete meinen Sie? Und wie kann ich sie zur Website hinzufügen, da es sich um eine statische Site handelt, die auf S3 gehostet wird? Avinash vor 7 Jahren 0
Fail2Ban ist einer. Ramhound vor 7 Jahren 0

3 Antworten auf die Frage

-1
Tim

Ich denke nicht, dass Sie dies mit S3 tun können, aber Sie können IP-Adressen verbieten , die mit CloudFront voreingestellte Grenzwerte überschreiten . Richten Sie CloudFront einfach so ein, dass S3-Inhalte bereitgestellt werden, und blockieren Sie den direkten Zugriff auf S3. Ihre Kosten können sich geringfügig verringern, sie steigen möglicherweise etwas an, aber es sollte keinen großen Einfluss auf Ihre Kosten haben.

-1
Algeriassic

Ich habe es nie probiert, aber ich denke, es ist machbar. Es wird jedoch kein einfaches Kontrollkästchen sein.

Folgendes müssen Sie tun:

  • Aktivieren Sie "Server Access Logging" für Ihren S3-Bucket.
  • Erstellen Sie eine Lambda-Funktion und planen Sie, dass sie alle x Minuten (Rate) oder auf einem Cron ausgeführt wird. Diese Funktion muss:

    • Durchforsten Sie diese Protokolle, und zählen Sie, wie oft eine IP-Adresse in einem bestimmten Zeitraum auf eine bestimmte Ressource (Datei oder einen Bucket) zugegriffen hat, oder die IP-Adresse, die 404 ... usw. erhält.
    • Entscheiden Sie abhängig von einem von Ihnen definierten Schwellenwert, ob Sie diese IP blockieren möchten oder nicht.
    • Ändern Sie die Richtlinie Ihres S3-Bucket (Sie können Boto3 dafür nutzen) und fügen Sie die IP hinzu, die Sie zuvor für die Blockierung beschlossen haben (NotIpAddress ist Ihr Freund).
Das ist wirklich eine ausgezeichnete Idee. Danke dir. Avinash vor 7 Jahren 0
-1
Paul Bissex

Der AWS-Dienst, der für diesen Job am besten geeignet erscheint, ist WAF, die Web Application Firewall.

Aus dem Abschnitt Sicherheitsautomatisierung ihrer Dokumentation:

Bots und Scraper: Betreiber von öffentlich zugänglichen Webanwendungen müssen darauf vertrauen können, dass sich die auf ihre Inhalte zugreifenden Kunden genau identifizieren und Dienste bestimmungsgemäß verwenden. Einige automatisierte Clients, z. B. Content Scraper oder schlechte Bots, stellen sich jedoch falsch dar, um Einschränkungen zu umgehen. Diese Lösung hilft Ihnen, fehlerhafte Bots und Scraper zu erkennen und zu blockieren.