Skip to content

feat(proxy): harden HTTP server defaults - #79

Open
P4ST4S wants to merge 1 commit into
mainfrom
feat/http-security-hardening-68
Open

feat(proxy): harden HTTP server defaults#79
P4ST4S wants to merge 1 commit into
mainfrom
feat/http-security-hardening-68

Conversation

@P4ST4S

@P4ST4S P4ST4S commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Summary

Durcit le proxy HTTP avec une adresse d’écoute configurable, des limites de corps et d’en-têtes, des timeouts serveur, ainsi que des allowlists Origin et Host. Ajoute une métrique de rejet HTTP à cardinalité bornée.

Context

Closes #68

Le plan v1.2 conserve le comportement historique des anciennes configurations : une adresse vide écoute toutes les interfaces et émet désormais un avertissement. Le nouveau fichier de configuration distribué fixe explicitement 127.0.0.1 ; le changement implicite du défaut est réservé à une version majeure.

Approach

  • borne le corps avant toute inspection et répond 413 au dépassement ;
  • configure les limites d’en-têtes et les timeouts de lecture, écriture et connexion inactive ;
  • valide exactement les origines navigateur et les hôtes configurés, tout en acceptant les clients non navigateur sans Origin ;
  • expose une métrique de rejet avec des raisons stables ;
  • valide les nouvelles valeurs au démarrage et documente leur impact de migration.

Test plan

  • go test -race ./... — passe
  • go build ./... — passe
  • go vet ./... — passe
  • tests dédiés : limite exacte et dépassement du corps, Origin autorisée/refusée/absente, Host autorisé/refusé, valeurs de configuration invalides et métrique de rejet

Stability impact

Ajoute les clés proxy.bind_address et proxy.http.*, ainsi que la métrique stable mcp_audit_http_request_rejections_total. Aucun comportement legacy n’est supprimé : une configuration sans adresse conserve l’écoute toutes interfaces avec avertissement.

Notes for reviewer

Le TLS entrant est volontairement séparé dans la PR suivante afin de garder un seul sujet par PR.

@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 73.49398% with 44 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
internal/proxy/http.go 77.31% 17 Missing and 10 partials ⚠️
cmd/mcp-audit/main.go 56.75% 16 Missing ⚠️
internal/metrics/recorder.go 90.00% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: secure HTTP proxy defaults

2 participants