Enforce per-user ownership on survey media in Storage rules
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Inizia da storage/storage.rules e firestore.rules:206-215 per confrontare i controlli di autorizzazione esistenti, quindi segui putFile() in ground-android e il percorso di upload di user-media. Il lavoro è completato quando gli upload includono una submissionId, le regole di Storage possono verificare il proprietario in Firestore per le letture e le scritture e gli oggetti esistenti hanno un percorso di migrazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Media authorization in storage/storage.rules is survey-scoped, while the equivalent Firestore rules are owner-scoped.
Storage rules authorize media at survey level, not owner level:
- Reads leak: allow read: if canViewSurvey() ignores canViewDataCollectedByOthers, and read includes list — any collector can list and download everyone's photos, even when Firestore hides their submissions.
- Writes can't be owner-scoped: #2576 had to fall back to organizer-only for update/delete, so owners can't manage their own media.
Cause: the upload path user-media/surveys/{surveyId}/submissions/{taskId}-{uuid}.jpg carries no user or submission ID, and putFile() sets no metadata. The owner is in Firestore (submission['5']) but only reachable submission → path; rules can't query.
Fix: add {submissionId} to the upload path (ground-android) so rules can do an exact firestore.get() and mirror firestore.rules:206-215. Needs a migration for existing objects.
- Lingua principale
- TypeScript
- Stelle
- 254
- Fork
- 114
- Merge medio
- 2g 10h
- PR unite (30g)
- 16
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di google/ground-platform
-
collect-one type: code health
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
google/ground-platform#2654 ·
I maintainer di solito rispondono entro 1 giorno
-
collect-one type: code health
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
google/ground-platform#2653 ·
I maintainer di solito rispondono entro 1 giorno
-
collect-one type: code health
Difficoltà 3/5 1-2 giorni Idoneità per principianti 59/100
google/ground-platform#2652 ·
I maintainer di solito rispondono entro 1 giorno
-
Allow data types to be changed againForse già presa @rfontanarosa l’ha presa 10 giorni fa. Apertatype: fr web
google/ground-platform#2649 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
collect-one type: fr
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
google/ground-platform#2648 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di google/ground-platform
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Azure/azure-functions-nodejs-extensions#180 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 2 giorni
-
iso-bmff: add IsoBoxReadView.readUint64 and IsoBoxWriteView.writeUint64 for exact 64-bit fieldsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
streaming-video-technology-alliance/common-media-library#611 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
prime-radiant-inc/evener#5901 ·
I maintainer di solito rispondono entro 1 giorno
-
area:frontend kind:bug priority:p3 ready
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno