|
@@ -31,6 +31,10 @@ Default:
|
|
|
|
|
|
|
|
## Aktuell geschützte Endpunkte
|
|
## Aktuell geschützte Endpunkte
|
|
|
|
|
|
|
|
|
|
+- `POST /api/request-otp.php`
|
|
|
|
|
+ - Key: `otp-request:{ip}:{email}`
|
|
|
|
|
+- `POST /api/verify-otp.php`
|
|
|
|
|
+ - Key: `otp-verify:{ip}:{email}`
|
|
|
- `POST /api/load-draft.php`
|
|
- `POST /api/load-draft.php`
|
|
|
- Key: `load:{ip}:{email}`
|
|
- Key: `load:{ip}:{email}`
|
|
|
- `POST /api/save-draft.php`
|
|
- `POST /api/save-draft.php`
|
|
@@ -39,8 +43,32 @@ Default:
|
|
|
- Key: `submit:{ip}:{email}`
|
|
- Key: `submit:{ip}:{email}`
|
|
|
- `POST /api/reset.php`
|
|
- `POST /api/reset.php`
|
|
|
- Key: `reset:{ip}:{email}`
|
|
- Key: `reset:{ip}:{email}`
|
|
|
|
|
+- `POST /api/upload-preview.php`
|
|
|
|
|
+ - Key: `preview-upload:{ip}:{email}`
|
|
|
|
|
+- `POST /api/delete-upload.php`
|
|
|
|
|
+ - Key: `delete-upload:{ip}:{email}`
|
|
|
|
|
|
|
|
-Hinweis: Jeder Endpunkt hat einen eigenen Prefix (`load/save/submit/reset`) und damit ein separates Limit-Fenster.
|
|
|
|
|
|
|
+Hinweis: Jeder Endpunkt hat einen eigenen Prefix und damit ein separates Limit-Fenster.
|
|
|
|
|
+
|
|
|
|
|
+## Kapazität bei aktivem Limiting
|
|
|
|
|
+
|
|
|
|
|
+Aktive Konfiguration (`config/app.local.php`):
|
|
|
|
|
+
|
|
|
|
|
+- `enabled = true`
|
|
|
|
|
+- `requests = 30`
|
|
|
|
|
+- `window_seconds = 300` (5 Minuten)
|
|
|
|
|
+
|
|
|
|
|
+Daraus ergibt sich pro Rate-Limit-Bucket (Key = `prefix + ip + email`):
|
|
|
|
|
+
|
|
|
|
|
+- 5 Minuten: `30` Requests
|
|
|
|
|
+- 1 Stunde: `360` Requests
|
|
|
|
|
+- 24 Stunden: `8.640` Requests
|
|
|
|
|
+
|
|
|
|
|
+Da aktuell 8 Endpunkte getrennte Buckets nutzen, ist der theoretische Gesamtwert über alle Endpunkte (gleiche IP + E-Mail) entsprechend:
|
|
|
|
|
+
|
|
|
|
|
+- 5 Minuten: `240` Requests
|
|
|
|
|
+- 1 Stunde: `2.880` Requests
|
|
|
|
|
+- 24 Stunden: `69.120` Requests
|
|
|
|
|
|
|
|
## Verhalten bei Limitüberschreitung
|
|
## Verhalten bei Limitüberschreitung
|
|
|
|
|
|