WAPWeb Application Protection

WAF · Security reverse proxy · by OneFirewall Alliance

Bots are hitting your website right now. Stop them at the door.

Password guessers, scanners and scrapers use up your servers, your budget and your evenings. Point your domain at WAP and they're turned away before they reach you.

3 steps to go live · no code changes · undo with one DNS change

edge.log
POST/login429 limited
GET/.env403 blocked
GET/checkout200 → origin
GET/%2e%2e/etc/passwd403 blocked
GET/products/42200 → origin
TRACE/403 blocked
POST/login429 limited

Sound familiar?

The headaches WAP takes away

Six things website owners tell us, and what changes once WAP sits in front of the site.

Peace of mind

“Someone is guessing passwords on our login all night.”

One rule limits /login to 10 tries a minute per address. The rest are turned away before your server sees them.

Saves money

“Our server bill went up, but real visitors didn't.”

Every visitor gets a fair-use ceiling and hostile networks are blocked in one line. Your servers only work for customers.

Saves time

“Our logs are full of scanners. We can't see the real problems.”

Attack tools, path-traversal tricks and junk methods are blocked automatically, from day one.

Peace of mind

“We just found out our .env file was public.”

Block /.env, /.git or any path in seconds, including every sneaky spelling like /%2eenv or //.ENV.

Saves money

“The site crawled during our biggest sale.”

Rate limits on heavy pages, request-size caps and origin timeouts keep capacity for paying visitors.

Approval

“A customer asked what protects our web app. We had no answer.”

Now you do: a security proxy in front of every site, a locked-down origin, and daily numbers to prove it.

Simple on purpose

Three steps. No project plan.

WAP is a security reverse proxy. Traffic for your domain goes to the WAP edge first; only clean requests are forwarded to your server.

  1. Sign inA one-time link by e-mail. No passwords.
  2. Add your siteYour domain and where your server lives. Protection starts right away.
  3. Change one DNS recordTraffic flows through WAP. Changed your mind? Point it back.

Free evaluation

Speak with the OneFirewall team.

Tell us your domain and what's hurting. An engineer will look at it with you and give you a straight answer, including "you don't need us for this" when that's the truth.

  • What's hitting your site, and what it costs you
  • The first rules worth switching on
  • No obligation, no credit card

Book your free evaluation

Use the OneFirewall contact form. The subject is already set to WAP; add your domain and a sentence or two about the problem: bots on your login, a slow site, a security questionnaire.

Contact OneFirewall →

No sales sequence. A OneFirewall engineer replies personally, usually within one working day. Already a member? Sign in to WAP.

Free, whether you sign up or not

Three things to do on your server today

Copy them, use them, share them with a friend who runs a website.

1. Find files that should never be public

Anything other than 403 or 404 needs fixing today.

for p in .env .git/config .DS_Store \
  server-status phpinfo.php backup.zip; do
  printf '%s ' "$p"
  curl -s -o /dev/null -w '%{http_code}\n' \
    https://example.com/$p
done

2. Rate-limit your login

Plenty for a human, far too few for a bot. In nginx:

limit_req_zone $binary_remote_addr
  zone=login:10m rate=10r/m;

location = /login {
  limit_req zone=login burst=5;
  proxy_pass http://app;
}

3. Don't let anyone go around you

  • Firewall the origin so only your proxy reaches ports 80/443.
  • Keep its IP out of DNS, MX records and mail headers.
  • Check crt.sh for old hostnames still pointing at it.
  • With WAP: reject requests without X-WAP: secure.

For the engineer who signs off

Exactly what WAP stops

Every protection, how it works and what the attacker gets back. Open any row for the detail.

Credential stuffing & brute forceAccount takeoverrule→ 429

The attackBotnets replay millions of leaked username/password pairs, or guess passwords, against your login and password-reset endpoints at thousands of attempts per minute. One reused password is enough to take over an account.

How WAP stops itAdd a rate-limit rule on the sensitive path, e.g. /login at 10 requests per minute per client IP. Every attempt over the limit is answered with 429 at the edge, so your authentication backend and database never see it.

POST /login ×600/min
Application-layer floods & scrapingAvailabilityrule→ 429

The attackLayer-7 floods send cheap HTTP requests that are expensive for you: search queries, report generation, cart operations. Aggressive scrapers do the same to copy prices and content. Both exhaust CPU, database connections and bandwidth.

How WAP stops itA site-wide per-IP requests-per-minute ceiling caps every visitor. Offending networks can be blocked by CIDR, and changes reach every edge node's memory within seconds. Volumetric L3/L4 DDoS needs network-level scrubbing upstream of WAP.

GET /search ×5,000/min
Exposed admin panels & secret filesReconnaissance · data exposurerule→ 403

The attackAutomated scanners request well-known paths on every site they find: /.env with database passwords, /.git/config, /wp-admin, /phpmyadmin, /actuator, /server-status. One forgotten file can leak credentials or source code.

How WAP stops itBlock rules on a path prefix, exact path or substring stop these requests with 403 before they reach the origin. To keep an admin panel reachable from your office only, add an allow rule for your office IP range and a block rule for the path.

GET /.git/config
Path traversalFile disclosurealways on→ 403

The attack../ sequences in the URL escape the web root to read files such as /etc/passwd or application configs. Attackers percent-encode them (%2e%2e%2f), double-encode them (%252e) or use backslashes to slip past naive filters.

How WAP stops itWAP decodes every path repeatedly, so double and triple encoding are unwrapped, and treats backslashes as separators. Any request whose path still contains a .. segment is rejected. Real browsers resolve these segments before sending, so legitimate traffic never trips this check.

GET /%252e%252e/%252e%252e/etc/passwd
Filter evasion by encodingRule bypassalways on→ 403

The attackPath filters are often bypassed by writing the same URL differently: /%61dmin, //admin, /ADMIN, /public/../admin or \admin. The origin server normalises the path and serves the protected page anyway.

How WAP stops itBefore matching rules, WAP normalises every path: it percent-decodes, collapses duplicate slashes, resolves dot segments, converts backslashes and ignores case. One /admin rule covers every spelling, while the original URL is still forwarded unchanged to your origin.

GET //%61DMIN/./users
Vulnerability scanners & hostile botsReconnaissancerule→ 403

The attackTools such as sqlmap, nikto, nuclei and masscan map your application and probe for known CVEs, often hours after a vulnerability is published. Their requests also fill your logs with noise.

How WAP stops itUser-Agent rules block known tooling, and IP/CIDR rules block hostile networks. Because the User-Agent is chosen by the client, combine these rules with rate limits. Blocked requests are counted per site per day on your dashboard.

User-Agent: sqlmap/1.8
Client IP spoofingAccess-control bypassalways on→ replaced

The attackAttackers send their own X-Forwarded-For or X-Real-IP header to look like an allow-listed address, to escape per-IP rate limits, or to plant a fake IP in your logs and audit trail.

How WAP stops itWAP discards every forwarding header the client sends and writes X-Forwarded-For and X-Real-IP from the actual TCP connection. Rate limits and IP rules use that same verified address.

X-Forwarded-For: 10.0.0.1
Origin discovery & protection bypassBypassalways on→ rejected

The attackIf attackers find your origin's real IP address, through old DNS records, certificate logs or a mail header, they can go around any proxy and attack the server directly.

How WAP stops itEvery request WAP forwards carries the fingerprint header X-WAP: secure. Allow only the WAP edge in your origin firewall and reject requests that don't carry the header. Direct hits then fail even when the IP has leaked.

GET / sent straight to origin IP
HTTP request smugglingDesyncalways on→ re-framed

The attackAmbiguous framing, such as Content-Length and Transfer-Encoding in the same request, makes the proxy and the origin disagree about where one request ends. A hidden second request is smuggled past security checks or into another user's connection.

How WAP stops itWAP fully parses each request and re-frames it for the upstream connection. When Transfer-Encoding is present, Content-Length is dropped, and hop-by-hop headers, including any listed in Connection, are stripped. The origin only receives framing that WAP generated.

CL: 4 + TE: chunked
Dangerous HTTP methodsMisconfigurationalways on→ 403

The attackTRACE reflects the full request back, which can expose cookies and authorization headers (cross-site tracing). PUT, DELETE or PATCH left enabled by mistake can let attackers modify content.

How WAP stops itTRACE and TRACK are blocked for every site. Method rules can block any other verb your application doesn't use, for example DELETE on a marketing site.

TRACE / HTTP/1.1
Oversized payloads & slow originsResource exhaustionalways on→ 413

The attackVery large request bodies fill memory and disk on upload handlers. An origin that hangs ties up connections until nothing is left for real users.

How WAP stops itBodies over the platform limit (25 MB by default) are refused with 413. The limit is checked against the declared Content-Length and again while the body streams. Upstream connect and response timeouts end hung connections with 504.

POST /upload (4 GB body)
Host header abuse & open-proxy attemptsPoisoningalways on→ 401

The attackForged Host or X-Forwarded-Host headers poison caches and password-reset links. Attackers also try to use reverse proxies as open relays to reach arbitrary sites.

How WAP stops itOnly exact, registered host names are forwarded, to the origin their owner configured. Every other host gets 401 and is never proxied. X-Forwarded-Host is always set by WAP, never taken from the client.

Host: attacker.example

Not available yet: managed signature rules (SQLi/XSS), automatic TLS, threat-intelligence blocking and domain verification. Volumetric (L3/L4) DDoS needs network-level scrubbing in front of WAP. We'd rather tell you now than after you've signed up.

FAQ

The questions people actually ask

Can I undo it?

Yes. Point your DNS back to your own server and WAP is out of the path. There's no lock-in, no agent to uninstall and no code to remove.

Will it slow my site down?

Rule checks run in memory and take microseconds. The real cost is one extra network hop between WAP and your origin, so it's smallest when your origin is close to the edge.

Do I need to change my application?

No. You add the site in the console and point your DNS at WAP. We recommend that your origin accepts traffic only from WAP and reads the visitor's IP from X-Forwarded-For.

How quickly do rule changes apply?

Within seconds. Configuration is stored in Postgres and pushed into the memory of every edge node through database notifications, so checking a request never waits on a database query.

What happens to traffic for domains that aren't registered?

It is answered with HTTP 401 and a page explaining that registration is needed. It is never forwarded anywhere.

Does WAP store my traffic?

WAP does not store request or response bodies. It keeps daily counters per site and, for unregistered domains, a small amount of request metadata for security analysis.

Does WAP stop volumetric DDoS?

WAP works at the HTTP layer (L7). Floods that saturate network links (L3/L4) need network-level scrubbing in front of the edge.

Who can sign up?

WAP is currently available to members of the OneFirewall Alliance. Sign-in is password-less, with a single-use link sent to your work e-mail. If you're not a member yet, contact OneFirewall and we'll set you up.

Stop paying for traffic that's trying to hurt you.

Talk to the OneFirewall team first. We'll look at what's hitting your site and tell you honestly whether WAP is the right fix.

WAP · Web Application Protection — served by OneFirewall Alliance LTD · webapplicationprotection.com