Add security headers, pin AllowedHosts and honor forwarded headers
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 50/100
Línea de trabajo
Comienza por LearnStack/appsettings.json:11 y LearnStack/Program.cs:76-95; revisa el request pipeline actual y la configuración de despliegue de App Service. Define la allowlist de hosts de producción y las autorizaciones de CSP; después, verifica los headers solicitados, el esquema reenviado y la IP del cliente, el rechazo de un Host inesperado y la calificación de securityheaders.com.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Tier 2 — security
Problem
- No security headers are emitted: no CSP,
X-Content-Type-Options,Referrer-PolicyorX-Frame-Options. AllowedHostsis"*", so the app answers to any Host header (host-header injection into generated links, cache poisoning).UseForwardedHeadersis not configured even though the app runs behind the App Service reverse proxy, so the scheme and client IP seen by the app are the proxy's — affecting redirects, logging and any future IP-based rate limiting.
Evidence
LearnStack/appsettings.json:11—"AllowedHosts": "*"LearnStack/Program.cs:76-95— no headers middleware, noUseForwardedHeaders
Proposed fix
- Add a middleware emitting the standard header set; start CSP in report-only mode since MudBlazor and Google Fonts need allowances, then enforce.
- Pin
AllowedHoststo the production domain(s). UseForwardedHeaderswithForwardedHeaders.XForwardedFor | XForwardedProtoearly in the pipeline.
Acceptance criteria
- securityheaders.com grade A or better
- Requests with an unexpected Host are rejected
- Logs show real client IPs and the correct scheme
- Lenguaje dominante
- HTML
- Estrellas
- 10
- Forks
- 0
- Merge medio
- 2 h 35 min
- PR fusionados (30 d)
- 21
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 kasuken/LearnStack
-
enhancement
Dificultad 1/5 Menos de una hora Aptitud para principiantes 91/100
kasuken/LearnStack#59 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
kasuken/LearnStack#72 ·
Los mantenedores suelen responder en 1 día
-
Feature: admin dashboardAbiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
kasuken/LearnStack#71 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
kasuken/LearnStack#70 ·
Los mantenedores suelen responder en 1 día
-
Feature: public profile pagesAbiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
kasuken/LearnStack#69 ·
Los mantenedores suelen responder en 1 día
Todos los issues de kasuken/LearnStack
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
umbraco/Umbraco-CMS-MCP-Dev#512 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
pollen-robotics/reachy_mini#1457 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
VilnaCRM-Org/user-service#525 ·
Los mantenedores suelen responder en 21 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
shukiv/jabali-panel#2029 ·
Los mantenedores suelen responder en 1 día
-
area:pool-types good first issue priority:low type:bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
crazy-goat/php-fpm-ng#822 ·
Los mantenedores suelen responder en 1 día