Auth transports add credentials after cross-origin redirects
Los mantenedores suelen responder en 1 día
Ya se ha fusionado un pull request relacionado.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- go
- Área
- backend-api-design, security
Línea de trabajo
Comienza con BasicAuthTransport y UnauthenticatedRateLimitedTransport, especialmente con sus métodos RoundTrip, y reproduce el comportamiento con dos servidores httptest tal como se describe. Se considera terminado cuando exista cobertura de regresión para ambos transports y las solicitudes redirigidas a un origen diferente no contengan sus encabezados de autorización añadidos por el transport.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
BasicAuthTransport and UnauthenticatedRateLimitedTransport add credentials in RoundTrip for each outgoing request. When Go's net/http client follows a redirect to a different origin, the redirected request can pass through the same transport and receive those credentials again.
Expected behavior
Credentials added by these transports should only be sent to the original origin. Redirected requests that cross origin should continue without these transport-managed credentials.
Reproduction
This can be reproduced with two httptest servers: one server returns a redirect to a second server, and the second server records whether the redirected request contains the transport-added authorization headers.
Proposed fix
PR #4364 avoids adding these credentials on cross-origin redirect requests and includes regression coverage for both affected transports.
- Lenguaje dominante
- Go
- Estrellas
- 11.3k
- Forks
- 2.6k
- Merge medio
- 2 d 8 h
- PR fusionados (30 d)
- 35
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de google/go-github
-
Support `reason` in `UsersService.Unsuspend`Posiblemente ocupada @JamBalaya56562 la tomó hoy. Abierto
google/go-github#4613 · 1 reacción · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Add support for stargazer count and history endpointsPosiblemente ocupada @ninadsutrave la tomó hace 1 día. Abierto
google/go-github#4610 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
http.Client.Timeout is ignored by redirect-aware requestsPosiblemente ocupada @sb123sb123 la tomó hace 21 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Add Copilot content exclusion set/get enterprise and org set endpointsPosiblemente ocupada @Tens1des la tomó hace 35 días. Abierto
google/go-github#4526 · 1 comentario · 1 reacción · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Add Copilot custom agents enterprise endpointsPosiblemente ocupada @Tens1des la tomó hace 35 días. Abierto
google/go-github#4524 · 1 reacción · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de google/go-github
Issues similares
-
raised-by:verifier
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
medici-finance/assay#2718 ·
Los mantenedores suelen responder en 1 día
-
connector good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
soma-intelligence/open-health-sync#60 ·
Los mantenedores suelen responder en 1 día
-
automation models
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
microsoft/TypeScript#64758 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
SocialGouv/iterion#2369 ·
Los mantenedores suelen responder en 1 día