Request Shield: die Regeln
Der Shield wird über Regeldateien konfiguriert, einfache Textdateien auf dem Server. Setup > Request Shield >
Regeln (/requestshield/rules) zeigt sie, nur lesend: ob sie sich übersetzen lassen, die Hauptdatei und die
eingebundenen Dateien und die Befehle, die sie prüfen. Geändert werden die Regeln auf dem Server, mit Ausnahme des
Modus, den die Schalter ändern können.
Inhalt
- Welche Datei der Shield verwendet
- Die mitgelieferten Dateien
- Die eigene Datei der Website
- Die Regeln auf dem Server prüfen
- Eine Regel lesen
Welche Datei der Shield verwendet
Der Shield liest eine Hauptregeldatei, die weitere einbinden kann. Es ist die erste von:
- der Datei, die
config.phpmitEXP_REQUEST_SHIELD_RULESnennt; - der eigenen Datei der Website,
settings/request-shield/request-shield.rules; - der Vorgabe der Extension,
extension/exp_request_shield/rules/request-shield.rules.
Die Seite sagt, welche verwendet wird und warum. Ist es die Vorgabe der Extension, sagt sie das: Aktualisierungen der Extension ersetzen diese Datei, deshalb sollte eine echte Website ihre eigene haben.
Die mitgelieferten Dateien
| Datei | Was sie ist |
|---|---|
request-shield.rules | die Hauptdatei: bindet die Exponential-Regeln ein, setzt den Modus (enforce), den Speicher und das Protokoll |
exponential.rules | die Regeln für die öffentliche Website: System-URLs, interne Dateien, Formulare, die Suche, das Tempo |
exponential-admin-uri.rules | ergänzt die Administration als Siteaccess /admin |
exponential-admin-host.rules | ergänzt die Administration auf einem eigenen Hostnamen |
Die drei exponential*.rules stammen unverändert aus der Bibliothek; warum es jede Regel gibt, erklärt deren
Anwendungsfall Exponential
(auf Englisch).
Die eigene Datei der Website
Die Datei der Website liegt in settings/request-shield/, mit Kopien der drei exponential*.rules daneben (ein
include darf mit .. nicht aus dem Verzeichnis seiner Datei hinausgreifen). Der erste Moduswechsel auf der
Übersicht legt diese Dateien an; sonst kopiert sie die Person, die den Server betreut
(der Leitfaden).
Darin nennt die Website ihre eigenen Hostnamen, sodass eine Anfrage an jeden anderen Namen abgewiesen wird. Behalten
Sie www.example.org in einer host-Zeile: Die mitgelieferten Beispiele verwenden diese Dokumentationsdomain, und
die Tests lassen ohne sie fünf davon scheitern. Kein echter Besucher sendet sie.
Die Regeln auf dem Server prüfen
Die Seite nennt die Befehle; führen Sie sie als der Benutzer aus, unter dem PHP für die Website läuft:
php extension/exp_request_shield/bin/request-shield check settings/request-shield/request-shield.rules
php extension/exp_request_shield/bin/request-shield test settings/request-shield/request-shield.rules
php extension/exp_request_shield/bin/request-shield trace settings/request-shield/request-shield.rules "GET https://www.example.org/the/path"checkbenennt jeden Fehler mit Datei und Zeile.testentscheidet jedesexpect-Beispiel neben den Regeln; nach jeder Änderung muss er bestehen.tracezeigt, wie eine einzelne Anfrage Regel für Regel entschieden wird: die schnellste Antwort auf die Frage „Warum wurde das abgewiesen?“.
Eine Regel lesen
Jede Regel hat eine ID in eckigen Klammern, und expect-Zeilen daneben sind Beispiele:
[SITE-DASH] restrict /rs/** to 127.0.0.1 ::1
expect GET /rs/stats/overview from 198.51.100.27 403 by SITE-DASHDiese Regel sperrt die eigenen Seiten der Bibliothek unter /rs für alle außer dem Server, und das Beispiel sagt,
dass eine Anfrage von außen durch diese Regel 403 erhält. Dieselbe ID erscheint im Protokoll. Die Regelsprache ist in
der Bibliothek dokumentiert (auf Englisch):
Regeldateien,
Einstellungen.
Der Text der Dateien wird gezeigt, wenn in requestshield.ini [AdminSettings] ShowRuleText=enabled steht (die
Vorgabe).