Kinto / Kinto/kinto

Document the correct way to manage collections to avoid security problems

Open
#3,561 2 comments 0 reactions 0 assignees View on GitHub
documentation security
Dominant language
Python
Stars
4.4k
Forks
438
Avg merge
1d 2h
Merged PRs (30d)
15

Description

Storing all related documents inside a shared collection like in a traditional database could lead to serious security problems.

Take [the first steps docs](https://docs.kinto-storage.org/en/stable/tutorials/first-steps.html) as an example, when storing all tasks inside `/buckets/todo/collections/tasks`, one could easily **broadcast** their tasks (or worse, **spam and fraud messages**) to all users in this application without prior user consent. All they need to do is setting the permission to `read: system.Everyone`.

Properly create collections for shared tasks could resolve this problem. For example, one could create a collection with a generated name for each share group, and add proper r/w permissions on it.

**This should be documented in order to pervent misusage.** And it should be noted that even if this method is adopted, server managers should also be care of possible CC attacks (by bulk-creating collections).

*I discovered this when submitting a security report to an other similar project. It has a basically same permission system while not allowing users to create seperate collections, resulting in a broken system on which you can't build literally any application. I may write a full writeup later on this.*

Contributor guide

Open the contributing guide

Research direction

Start with the linked first steps documentation at docs.kinto-storage.org/en/stable/tutorials/first-steps.html and identify where collection and permission guidance belongs. Document safer per-share-group collection practices, consent implications, and the risk of bulk-created collections; done means users can follow the guidance without exposing or broadcasting shared data.

Written by the indexing model from the issue text.

Assessment

Domain
authorization, documentation, security
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.