Respuestas y cabeceras del borde

Ver en Markdown

Códigos de estado que el borde de OpenWAF responde por su cuenta, los cuerpos que envía, las cabeceras que añade o quita y las que recibe tu origen.

En esta página

Códigos de estado

EstadoCuándoCuerpo
301HTTP sin cifrar, o www.<raíz> cuando la raíz es un sitio con proxy.Redirección a HTTPS o a la raíz.
301, 302, 307, 308Casó una regla de redirección.Redirección.
400Transfer-Encoding ambiguo o Content-Length contradictorio.Texto plano.
401Página de acceso de la puerta de acceso.Formulario HTML.
403Regla por IP, regla por país, lista de amenazas, WAF, escudos de SSRF, redirección abierta o inyección de prompts; bloqueo del control de rastreadores IA (por defecto).Página de bloqueo.
403Reto o laberinto del control de rastreadores IA a una petición que no es una navegación.{"error":"verificacion de navegador requerida"} o {"error":"forbidden"}.
404Escudos de WordPress, source maps o GraphQL.Texto plano 404 page not found.
413Cuerpo mayor que max_body_mb, o mayor que el límite de inspección de los escudos.Texto plano.
421El borde no sirve ese nombre.Página genérica.
429Regla de límite de peticiones con block (o challenge en lo que no es navegación).Página de bloqueo para navegadores, {"error":"rate_limited","retry_after":N} para el resto, con Retry-After.
429Regla de límite por ruta, límite básico o escudo de paginación.Página de bloqueo.
503Reto de navegador.Página de prueba de trabajo, Cache-Control: no-store.
502, 525, 526No se pudo llegar al origen o falló su TLS.Consulta la solución de problemas de SSL/TLS.

Los bloqueos del control de rastreadores IA usan la block_response que configures (401, 402, 403, 404, 410, 429, 451 o 503); consulta los ajustes del control de rastreadores IA.

Cabeceras de respuesta

En cada respuesta de tu origen, el borde:

  • pone Server a nginx o a tu fake_server_header;
  • quita X-Powered-By, X-AspNet-Version, X-AspNetMvc-Version, X-Runtime, X-Generator, X-Debug-Info, X-Platform-Server, X-Served-By, X-Backend-Server, X-Drupal-Cache y X-Varnish;
  • añade, solo si el origen no las puso: X-Content-Type-Options: nosniff, X-Frame-Options: SAMEORIGIN, Referrer-Policy: strict-origin-when-cross-origin y Permissions-Policy: camera=(), microphone=(), geolocation=();
  • pone Strict-Transport-Security en las respuestas HTTPS cuando HSTS está activado (consulta HSTS);
  • añade Secure, HttpOnly y SameSite=Lax a cada Set-Cookie que no los lleve.

En /health, /status, /version, /api/health y /api/status, el borde quita del cuerpo JSON los campos version, build, commit, node_version, framework y nestjs, para que no se pueda identificar la tecnología.

CORS

Si tu origen refleja el Origin de la petición en Access-Control-Allow-Origin, el borde lo conserva solo si ese origen es el mismo sitio (el propio nombre, un subdominio o un dominio padre) o un host de cors_allow_origins. Si no, quita Access-Control-Allow-Origin y Access-Control-Allow-Credentials. Un comodín * junto con Access-Control-Allow-Credentials: true pierde la cabecera de credenciales.

Cabeceras que recibe tu origen

CabeceraValor
X-Forwarded-For, X-Real-IP, CF-Connecting-IPLa IP del cliente tal como la ve el borde (sustituye cualquier valor que enviara el cliente).
X-Forwarded-HostEl host pedido.
X-Forwarded-Protohttps o http.

El borde quita de las peticiones X-Originating-IP, X-Remote-IP, X-Remote-Addr, X-Client-IP, True-Client-IP y Forwarded, para que un cliente no pueda falsear su dirección ante tu aplicación.

Última actualización:

↑↓ para moverte↵ para abriresc para cerrar