|
@@ -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
|
|
kan, maar verplicht verder niets — P1 (aanbevolen, niet blokkerend voor
|
|
|
livegang), Bob's eigen afweging of dit nu of later gebeurt.
|
|
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
|
|
**P1-17 · Eigenaar: Bob (resterende 108 vertalingen, handmatig — zie
|
|
|
controlelijst-artifact hieronder; de 7 gekoppelde-bug-sleutels en de
|
|
controlelijst-artifact hieronder; de 7 gekoppelde-bug-sleutels en de
|
|
|
eerste 6 zijn al gedaan).** **Live bevestigd 2026-08-07 (Claude,
|
|
eerste 6 zijn al gedaan).** **Live bevestigd 2026-08-07 (Claude,
|