aws-samples / aws-samples/iot-lambda-sns-sqs-lambda-dynamodb

Random number as DynamoDB partition key — collision risk

Offen Anfängerfreundlich
#1 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
JavaScript
Sterne
2
Forks
0
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Location:
allfilteredeventconsumer.js

ID: Math.floor(Math.random() * Math.floor(10000000)).toString(),
Using Math.random() with a range of 0-10,000,000 for the primary key. With sufficient volume, collisions will occur and silently overwrite previous records. This is a data loss bug, not just a security issue.

Fix: Use a UUID:

const { randomUUID } = require('crypto');
ID: randomUUID(),

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Öffne allfilteredeventconsumer.js und finde die ID-Zuweisung mit Math.random(). Ersetze den begrenzten Zufallswert durch den im Issue gezeigten UUID-Ansatz und verifiziere anschließend, dass die generierten Partition Keys weiterhin eindeutig sind und vorhandene Datensätze nicht stillschweigend überschrieben werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript
Bereich
databases
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Ruhig
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
78/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.