Skip to content

Example 1: Basic Sensitive File Blocking ​

This scenario protects a web application against reconnaissance and exposure of critical infrastructure files using RouteWarden's built-in rule dictionary.


Configuration Preview ​

# dynamic_conf.ymlhttp:  middlewares:    warden-shield:      plugin:        routewarden:          enabled: true          enableDefaultPatterns: true          response:            mode: json            statusCode: 403            body: '{"error":"Forbidden","message":"Sensitive path blocked by RouteWarden"}'  routers:    webapp-router:      rule: "Host(`localhost`)"      entryPoints:        - web      middlewares:        - warden-shield      service: webapp-service  services:    webapp-service:      loadBalancer:        servers:          - url: "http://webapp:80"

Docker Compose Example ​

services:  traefik:    image: traefik:v3.1    command:      - "--api.insecure=true"      - "--providers.docker=true"      - "--providers.docker.exposedbydefault=false"      - "--entrypoints.web.address=:80"      - "--experimental.plugins.routewarden.modulename=github.com/routewarden/traefik-warden"      - "--experimental.plugins.routewarden.version=v1.2.1"    ports:      - "80:80"      - "8080:8080"    volumes:      - "/var/run/docker.sock:/var/run/docker.sock:ro"  webapp:    image: nginx:alpine    labels:      - "traefik.enable=true"      - "traefik.http.routers.webapp.rule=Host(`localhost`)"      - "traefik.http.routers.webapp.entrypoints=web"      - "traefik.http.routers.webapp.middlewares=warden-shield"      # RouteWarden Setup      - "traefik.http.middlewares.warden-shield.plugin.routewarden.enabled=true"      - "traefik.http.middlewares.warden-shield.plugin.routewarden.enableDefaultPatterns=true"      - "traefik.http.middlewares.warden-shield.plugin.routewarden.response.mode=json"      - "traefik.http.middlewares.warden-shield.plugin.routewarden.response.statusCode=403"

Verification Commands ​

# Legitimate homepage access (Allowed)curl -I http://localhost/# Output: HTTP/1.1 200 OK# Probing for environment secrets (Blocked)curl -i http://localhost/.env# Output: HTTP/1.1 403 Forbidden# {"error":"Forbidden","message":"Sensitive path blocked by RouteWarden"}# Probing for Git repository details (Blocked)curl -i http://localhost/.git/config# Output: HTTP/1.1 403 Forbidden

Released under the MIT License.