Jelajahi Sumber

TASKS.md: nieuwe taak P1-30 - API-misbruik beperken (App Check overgeslagen, Cloudflare rate limiting aanbevolen)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
bob 2 minggu lalu
induk
melakukan
7a918fe381
1 mengubah file dengan 37 tambahan dan 0 penghapusan
  1. 37 0
      TASKS.md

+ 37 - 0
TASKS.md

@@ -1177,6 +1177,43 @@ P2-10). Firebase-project koppelen is verplichte infra vóór Crashlytics
 kan, maar verplicht verder niets — P1 (aanbevolen, niet blokkerend voor
 livegang), Bob's eigen afweging of dit nu of later gebeurt.
 
+**P1-30 · Eigenaar: Bob (Cloudflare/infra-niveau, geen Claude-taak).**
+API-misbruik beperken voor de publieke Drupal-backend. **Besproken
+2026-08-25 (chat, n.a.v. FlutterFlow's App Check-toggle):**
+- **Firebase App Check overgeslagen** — beschermt alleen Firebase-
+  diensten zelf (Firestore/Cloud Functions/Storage). Backend hier is
+  Drupal, geen Firebase-dienst, dus de toggle alleen doet niets; zou
+  alleen werken met extra custom Drupal-code die het App Check-token
+  verifieert (Play Integrity/DeviceCheck) — significante extra bouw aan
+  beide kanten (FlutterFlow custom action + Drupal custom module). Niet
+  nu de moeite waard, pas overwegen als misbruik een gemeten probleem
+  wordt.
+- **Kernbeperking, niet op te lossen:** alles wat de app meestuurt (URL,
+  headers, een eventuele "geheime" sleutel) staat letterlijk in de
+  gecompileerde app en is te achterhalen (APK decompileren, of het
+  netwerkverkeer onderscheppen met een proxy) — Cloudflare kan nooit
+  cryptografisch bewijzen "dit is echt de app", alleen filteren op
+  request-patronen.
+- **Aanbevolen, praktische aanpak (beste inspanning/opbrengst):**
+  1. **Rate limiting op Cloudflare** voor de API-paden (WAF → Rate
+     Limiting Rules, basisvarianten al op gratis/Pro-plan) — beperkt
+     volume per IP, ongeacht "wie" het is. Stopt het gros van scraping/
+     misbruik zonder identiteitsverificatie nodig te hebben.
+  2. Schrijf-acties (favorieten, inloggen, account verwijderen) blijven
+     achter de bestaande sessie+CSRF-auth — dat is al zo, geen actie
+     nodig. Alleen **lezen** (browse-endpoints) is bewust anoniem/
+     publiek (zie het geschrapte P0-5) en kan niet afgesloten worden
+     zonder de bedoelde openbare werking kapot te maken.
+  3. Optioneel, lage moeite: een vaste header-check als Cloudflare
+     Custom Rule (app stuurt altijd header X mee) — geen echte
+     beveiliging, maar filtert luie scrapers die alleen de kale URL
+     proberen.
+  4. De "echte" oplossing (App Check + Drupal-token-verificatie, zie
+     boven) pas bouwen als scraping/misbruik daadwerkelijk een probleem
+     blijkt, niet preventief.
+- **Volgende stap:** Bob zet rate limiting aan op Cloudflare voor de
+  API-paden (punt 1) — verder geen actie nu.
+
 **P1-17 · Eigenaar: Bob (resterende 108 vertalingen, handmatig — zie
 controlelijst-artifact hieronder; de 7 gekoppelde-bug-sleutels en de
 eerste 6 zijn al gedaan).** **Live bevestigd 2026-08-07 (Claude,