GunSpec
Praxis

Gesperrte Adressen

Eine Adresse kann für die API und die Website gesperrt werden. Hier steht, was ein gesperrter Aufrufer sieht, wie Sie eine Sperre aufheben lassen, wenn sie ein Irrtum war, und was das System dazu bringt, eine Adresse von selbst zu sperren.

Eine Sperre gilt einer Adresse, nie einem Konto oder einem API-Schlüssel; derselbe Schlüssel funktioniert also aus einem anderen Netz. Eine Anfrage kann an zwei Stellen gestoppt werden, und beide sehen unterschiedlich aus.

Wo sie gestoppt wurdeWas Sie sehenWas Sie uns nennen sollten
Die Firewall von Cloudflare, vor der gesamten Website und der APIEine Sperrseite von Cloudflare mit HTTP-Status 403, die eine Ray-ID und Ihre Adresse zeigt.Die Ray-ID auf dieser Seite.
Die API selbstEine JSON-Antwort mit HTTP-Status 403, dem Grund CLIENT_BLOCKED und der Meldung Access from this address has been blocked.Der Header X-Request-Id der Antwort.

Ein Schlüssel, der pausiert ist, weil er lange nach seinem Limit weiter aufgerufen wurde, ist etwas anderes. Er antwortet von jeder Adresse mit 403 KEY_ON_HOLD; die Fehlerseite führt alle Gründe auf.

Schreiben Sie an support@gunspec.io. E-Mail funktioniert aus jedem Netz, während eine gesperrte Adresse diese Website oder ein Webformular womöglich nicht laden kann; schreiben Sie also bei Bedarf über eine andere Verbindung. Nehmen Sie Folgendes in die Nachricht auf, dann muss niemand nachfragen.

  1. Die gesperrte Adresse

    Auf der gesperrten Verbindung zeigt eine Seite wie „Wie lautet meine IP“ sie an. Schreiben Sie aus einem anderen Netz, nennen Sie das Netz, aus dem der gesperrte Verkehr kam.

  2. Wann es passiert ist

    Die Uhrzeit mit Zeitzone der ersten abgewiesenen Anfrage.

  3. Was die App getan hat

    Welches Programm oder welche Integration die Anfragen gesendet hat und was sie tun sollte.

  4. Was Sie gesehen haben

    Die Ray-ID von der Seite von Cloudflare oder der Request-ID-Header aus der Antwort der API.

  5. Ob die Adresse geteilt wird

    Ein Büro, eine Schule oder ein Mobilfunknetz ist eine Adresse für viele Menschen, und die Sperre kann Verkehr gelten, der nicht Ihrer war.

  6. Den gesperrten Verkehr stoppen und auf unsere Antwort warten

    Pausieren Sie die abgewiesenen Aufrufe, wenn möglich. Wir antworten per E-Mail an die Adresse, von der Sie geschrieben haben.

Ein Mensch sieht es sich an. Eine Sperre endet auch von selbst, wenn ihre Dauer abgelaufen ist, aber nichts wird vorzeitig aufgehoben, ohne dass jemand hinsieht.

  • Wir lesen, aus welchem Grund die Sperre eingetragen wurde, wer oder was sie eingetragen hat und was die Adresse in der vergangenen Woche gesendet hat.
  • War es ein Irrtum oder ist die Ursache behoben, heben wir die Sperre auf und sagen Ihnen Bescheid. Die Adresse wird danach 24 Stunden lang in Ruhe gelassen, damit derselbe Verkehr sie nicht sofort wieder sperrt.
  • Sendet die Adresse nach einer Aufhebung wieder dieselben Eingaben, wird sie erneut gesperrt, und jedes Mal länger: 24 Stunden, 7 Tage und 30 Tage. Eine Adresse bleibt 90 Tage im Gedächtnis.

Drei Dinge tragen eine Sperre ein, und nur drei.

  • Eine Person aus unserem Team, von Hand, mit festgehaltenem Grund.
  • Der automatische Detektor, wenn eine Adresse die Anfragen sendet, die er als feindselig zählt. Er ist weiter unten beschrieben.
  • Adressen, die aus einer Cloudflare-Regel übernommen wurden, die schon bestand, als wir die Firewall angebunden haben.

Sonst trägt nichts eine Sperre ein. Weder eine KI noch ein Aufruf, den ein Kunde machen kann. Die Agenten, die den Katalog recherchieren, reichen nur Vorschläge ein, die ein Mensch prüft, und keiner von ihnen kann eine Sperre berühren.

Der Detektor zählt Anfragen an die API, deren Query-String Eingaben enthält, die nur ein Angriff sendet. Es spielt keine Rolle, in welchem Parameter sie stehen oder dass der Endpunkt den Parameter ignoriert und mit 200 antwortet. Es ist dieselbe Prüfung, die auch die Suchfelder verwenden.

  • Markup- oder Template-Zeichen, etwa spitze Klammern und doppelte geschweifte Klammern.
  • Kodierte Escape-Folgen, etwa Prozentcodes und HTML-Entitäten, wo einfacher Text hingehört.
  • Eine Webadresse oder ein Dateipfad, wo ein Suchbegriff hingehört.
  • Hostnamen, mit denen Scanner zurückmelden, dass ein Treffer gelungen ist.
  • SQL, wie sie nur ein Angriff schreibt.
  • Steuerzeichen und unsichtbare Zeichen.

Eine Anfrage, die wegen des sendenden Programms (des User-Agents) abgewiesen wurde, zählt deutlich weniger. Wer beim Entwickeln einen User-Agent-Header vergessen hat, begegnet ihr leicht.

Das sind die Werte, nach denen er arbeitet.

EinstellungWert
Feindselige Anfragen einer Adresse, die eine Sperre auslösen20 in 1 Stunde
Wegen des sendenden Programms (User-Agent) abgewiesene Anfragen, die eine Sperre auslösen100 in 1 Stunde
Dauer der ersten Sperre24 Stunden
Dauer der zweiten Sperre7 Tage
Dauer der dritten Sperre und jeder weiteren30 Tage
Wie lange frühere Sperren einer Adresse im Gedächtnis bleiben90 Tage

Nichts davon zählt für eine Sperre.

  • Ein falscher, fehlender oder abgelaufener API-Schlüssel.
  • Ein 404 für einen Datensatz, den es nicht gibt, oder ein 400 für einen ungültigen Parameter.
  • Ein 429 wegen Überschreitung eines Limits. Wer langsamer wird, ist wieder frei; Limits sperren nie eine Adresse.
  • Starker, aber normaler Verkehr. Die Ratenlimits und das Tageskontingent regeln das Volumen.
  • Normale Satzzeichen, etwa Anführungszeichen, Semikolons, Gleichheitszeichen und das Und-Zeichen. Eine Suche nach Smith & Wesson ist in Ordnung.
  • Jeder echte Name einer Waffe, eines Herstellers oder einer Patrone. Die Prüfung wurde gegen jeden Namen im Katalog getestet, und keiner löst sie aus.

Der Detektor lässt diese Adressen in Ruhe.

  • Private und reservierte Netzbereiche sowie die eigenen Adressen von Cloudflare.
  • Eine Adresse, die ein Schlüssel eines bezahlten Tarifs in den letzten 3 Tage erfolgreich genutzt hat. Ein Büro, ein Campus oder ein Mobilfunknetz ist eine Adresse für viele Menschen, und ein Kunde soll den Zugang nicht verlieren, weil jemand im selben Netz etwas anderes tut.
  • Eine Adresse, deren Sperre wir in den letzten 24 Stunden aufgehoben haben.

Unser Team kann jede Adresse weiterhin von Hand sperren.

Fast jede Sperre einer echten Integration hat dieselbe Ursache: Die App nimmt, was ihre eigenen Besucher eintippen oder was in ihrer eigenen Anfrage ankommt, und gibt es unverändert an die API weiter. Ein Besucher oder ein Scanner, der Ihre Website abtastet, sendet Text, wie ihn nur ein Angriff schreibt, Ihr Server reicht ihn durch, und die API sieht ihn von der Adresse Ihres Servers kommen.

  • Prüfen Sie Suchtext, bevor Sie ihn weitergeben. Verwerfen Sie Eingaben, die Markup, eine Webadresse oder ein Dateipfad sind, und geben Sie nur weiter, was ein Mensch tippen würde.
  • Geben Sie den Query-String Ihrer eigenen Anfrage nie unverändert weiter. Wählen Sie die Parameter, die Sie nutzen, und senden Sie nur diese.
  • Cachen Sie Antworten, damit dieselbe Eingabe nicht immer wieder gesendet wird. Caching zeigt, wie.
  • Senden Sie einen stabilen, aussagekräftigen User-Agent, der Ihre App nennt.
  • Rufen Sie, wo möglich, von einer festen ausgehenden Adresse aus auf und nennen Sie uns diese, wenn Sie schreiben, damit wir Ihren Verkehr von fremdem unterscheiden können.
  • Halten Sie den Schlüssel auf Ihrem Server hinter einer Positivliste von Pfaden. Schlüssel im Produktivbetrieb zeigt den Proxy.

Die Regel in der Firewall von Cloudflare fasst etwa 290 Adressen. Ist sie voll, bleiben die ältesten automatischen Sperren außen vor, und diese Adressen bleiben durch die API selbst gesperrt. Die Sperre gilt in beiden Fällen. Der einzige Unterschied für die Betroffenen ist, was sie sehen: das JSON-403 der API statt der Seite von Cloudflare. Aufgehoben wird sie auf demselben Weg, indem Sie uns schreiben.