Define and enforce webhook destination policy for hosted and self-hosted deployments

Abierto
#2,666 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
12/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
csharp
Área
backend, security

Línea de trabajo

Start with the connect-time PublicAddressPolicy introduced for source maps in #2625, and the webhook delivery path it would need to cover, including redirect handling. Decide the hosted default and the self-hosted opt-out before writing code, since the issue asks for that decision first. Done means a written policy plus enforcement at connection time and on redirects, tested with local fixtures only.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Webhook delivery currently has no public-address restriction. During review of #2628, Eric called out that user-selected destinations and redirects can reach internal services. #2628 deliberately leaves destination policy unchanged and removes the acceptance test that would have made private, loopback, metadata, and credential URLs a supported contract.

Decide the hosted default and an explicit self-hosted opt-out before implementing restrictions. Evaluate reusing the connect-time PublicAddressPolicy introduced for source maps in #2625, while accounting for webhook redirects, DNS changes, and configured proxies.

Acceptance criteria:

  • Define allowed schemes, address ranges, credential-bearing URLs, redirect handling, and the self-hosted configuration contract.
  • Enforce the selected policy at connection time and on redirect destinations; URL validation alone must not be treated as protection against DNS changes.
  • Cover public destinations, loopback/private/link-local addresses, IPv4/IPv6, DNS changes, redirects, and proxy behavior using controlled local fixtures without contacting real internal or metadata services.
  • Define behavior for existing hooks that become disallowed, including actionable sanitized diagnostics and whether they are disabled or rejected without delivery.
  • Document compatibility and rollout requirements for hosted and self-hosted installations; preserve legitimate private integrations only under the explicitly chosen configuration.

This is separate from #2628's delivery cleanup and telemetry changes. The remaining destination-policy limitation is not fixed by that PR.

Lenguaje dominante
C#
Estrellas
2.5k
Forks
508
Merge medio
2 d 17 h
PR fusionados (30 d)
40

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de exceptionless/Exceptionless

Todos los issues de exceptionless/Exceptionless

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.