CodeGenieApp / CodeGenieApp/serverless-express
Unhandled Promise Rejection on ALB event
- 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')
})
```

Beitragsleitfaden
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