CodeGenieApp / CodeGenieApp/serverless-express
Unhandled Promise Rejection on ALB event
- Lenguaje dominante
- JavaScript
- Estrellas
- 5.3k
- Forks
- 674
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
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')
})
```

Guía de contribución
Línea de trabajo
Comienza en src/event-sources/aws/alb.js, en las líneas referenciadas de manejo de parámetros de consulta y procesamiento de eventos, y reproduce después el caso con un valor de multiValueQueryStringParameters que haga que decodeURIComponent falle. Actualiza el comportamiento para que el fallo se devuelva como un error que los consumidores puedan gestionar, y verifica que el test proporcionado de serverlessExpressInstance informe del rechazo.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- aws, javascript, node.js
- Área
- backend, cloud
- Tipo de issue
- Error
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 45/100