CodeGenieApp / CodeGenieApp/serverless-express

Unhandled Promise Rejection on ALB event

Offen
#678 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
JavaScript
Sterne
5.3k
Forks
676
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Given an ALB event with multiValueQueryStringParameters but one of the value fails `decodeURIComponent` , the promise isnt handled at all. Expectation is that it should return an error and consumers treat that error

https://github.com/CodeGenieApp/serverless-express/blob/1376bd01e29f6bcf911f86a2b17a5cb85b2844ec/src/event-sources/aws/alb.js#L40
https://github.com/CodeGenieApp/serverless-express/blob/1376bd01e29f6bcf911f86a2b17a5cb85b2844ec/src/event-sources/aws/alb.js#L17

The below test wont even report the failure since the promise is left unhandled
```
test('serverlessExpressInstance should throw', async () => {
const multiValueQueryStringParameters = { etype: ['odp'], passurl: ['/category/'], template: ['../../../../../../../../../etc/passwd%%0000.html'] }

const event = makeEvent({
eventSourceName: 'alb',
path: '/',
httpMethod: 'GET',
multiValueQueryStringParameters
})
await expect(serverlessExpressInstance(event)).toThrow('some')
})
```

![Screenshot 2024-04-23 at 11 34 20 AM](https://github.com/CodeGenieApp/serverless-express/assets/11545334/6a2afcf4-f980-45e7-8ae2-689e554fbe05)

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne in src/event-sources/aws/alb.js bei der referenzierten Behandlung von Query-Parametern und den Zeilen zur Ereignisverarbeitung, und reproduziere dann den Fall mit einem multiValueQueryStringParameters-Wert, bei dem decodeURIComponent fehlschlägt. Aktualisiere das Verhalten so, dass der Fehler als ein von Verbrauchern behandelbarer Fehler zurückgegeben wird, und verifiziere, dass der bereitgestellte serverlessExpressInstance-Test die Ablehnung meldet.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
aws, javascript, node.js
Bereich
backend, cloud
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

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