zoraxy-waf/web/index.html
cclohmar 16761613bb fix: redirect preservation, health check, Content-Length, UI simplification
- health.go: treat any HTTP response as reachable (only connection errors fail)
- main.go: CheckRedirect in handleReturn to preserve 302 + Set-Cookie
- middleware.go: Content-Length for POST/PUT/PATCH bodies, CheckRedirect
  in forwardToWAF and forwardToReturn
- web/: replace stats panel with 3-state WAF indicator (DISABLED/ENABLED/FAILED)
- README: update defaults, architecture, health check docs
- .agents.md: update verified status for Wallarm integration
2026-08-08 14:53:12 +00:00

67 lines
2.1 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="zoraxy.csrf.Token" content="{{.csrfToken}}">
<title>Firewall</title>
<link rel="stylesheet" href="./style.css">
</head>
<body>
<header>
<h1>Firewall</h1>
<p>Inline WAF proxy with health checks and fail-open bypass.</p>
</header>
<main>
<section class="config-panel">
<h2>Configuration</h2>
<div class="field">
<label class="toggle">
<input type="checkbox" id="fw-enabled">
<span class="slider"></span>
</label>
<span id="enabled-label">Firewall Disabled</span>
</div>
<div class="field">
<label for="waf-url">WAF URL</label>
<input type="text" id="waf-url" placeholder="http://127.0.0.1:8080">
<small>The firewall application URL (e.g. Wallarm, ModSecurity, Coraza).</small>
</div>
<div class="field">
<label for="return-port">Return Port</label>
<input type="number" id="return-port" placeholder="8080" min="1" max="65535">
<small>Traffic returns to Zoraxy on this port for routing to the backend.</small>
</div>
<div class="field">
<label for="health-interval">Health Check Interval (s)</label>
<input type="number" id="health-interval" placeholder="5" min="1" max="60">
</div>
<div class="field">
<label for="timeout-ms">Proxy Timeout (ms)</label>
<input type="number" id="timeout-ms" placeholder="10000" min="100" max="30000">
</div>
<button id="save-btn" class="btn btn-primary">Save Configuration</button>
<span id="save-status"></span>
</section>
<section class="status-panel">
<h2>WAF Status</h2>
<div class="status-indicator" id="waf-indicator">
<span class="status-dot"></span>
<span class="status-text">--</span>
</div>
</section>
</main>
<script src="/script/jquery-3.6.0.min.js"></script>
<script src="/script/utils.js"></script>
<script src="./app.js"></script>
</body>
</html>