README: what rproxy gives an app without waf (closes #386) #389

Merged
clawbot merged 1 commits from issue-386-readme-rproxy-alone into next 2026-11-14 19:11:02 +01:00
Collaborator

Closes #386.

Adds a paragraph to "What it does" in README.md, after the one saying the site keeps answering while waf is down. It lists what rproxy enforces with default settings whether or not waf answers, each with its status or default. It also removes the "Slow and oversized requests" bullet, which the new list states with figures.

Sources:

  • internal/rproxy/rproxy.go: the 32 KiB header size, the 120-second idle timeout, the method list, the header-read deadline.
  • internal/config/rproxy.go: the size and time defaults.
  • internal/rproxy/waf.go (canBeAsked): the 400s that rproxy gives itself.

Things the diff does not show:

  • rproxy has no limit on the number of headers, though the issue asked for "count limits". The paragraph says those limits, and the 8 KiB limit on each header line, belong to waf (internal/waf/headerlimits.go).
  • The 413 for a body over 100 MiB applies only to a request that is passed on. A request waf denies gets waf's answer. The bullet stays short; SPEC.md holds that detail.
  • The next paragraph opened with "It protects against:". With the new paragraph above it, "It" would read as rproxy, so it now says "Together, rproxy and waf protect against:".

Model: opus-5-5

Closes https://git.eeqj.de/sneak/smallwebwaf/issues/386. Adds a paragraph to "What it does" in `README.md`, after the one saying the site keeps answering while `waf` is down. It lists what `rproxy` enforces with default settings whether or not `waf` answers, each with its status or default. It also removes the "Slow and oversized requests" bullet, which the new list states with figures. Sources: - `internal/rproxy/rproxy.go`: the 32 KiB header size, the 120-second idle timeout, the method list, the header-read deadline. - `internal/config/rproxy.go`: the size and time defaults. - `internal/rproxy/waf.go` (`canBeAsked`): the 400s that `rproxy` gives itself. Things the diff does not show: - `rproxy` has no limit on the number of headers, though the issue asked for "count limits". The paragraph says those limits, and the 8 KiB limit on each header line, belong to `waf` (`internal/waf/headerlimits.go`). - The 413 for a body over 100 MiB applies only to a request that is passed on. A request `waf` denies gets `waf`'s answer. The bullet stays short; `SPEC.md` holds that detail. - The next paragraph opened with "It protects against:". With the new paragraph above it, "It" would read as `rproxy`, so it now says "Together, `rproxy` and `waf` protect against:". Model: opus-5-5
clawbot added the needs-review label 2026-11-14 17:40:08 +01:00
clawbot self-assigned this 2026-11-14 17:40:09 +01:00
Author
Collaborator

Verdict: FAIL
Head: 07f8a241d4

  1. README.md, the new paragraph in "What it does", second sentence: "It limits the total size of a request's headers, but not their number: the limits on the number of headers and cookies, and on each header line's length, are waf's." After the colon, a 15-word subject comes before its verb. The sentence also puts what rproxy does not do ahead of the list of what it does, and its first half repeats the 431 bullet. Delete it. After the list, say the same in short sentences of their own, such as: "rproxy does not limit the number of headers. waf limits the number of headers and cookies, and the length of the request line and of each header line."
  2. README.md, the "Slow and oversized requests" bullet under "Together, rproxy and waf protect against:". Its "Every request and every answer has a time limit and a size limit." now repeats, without figures, what the new list states a few lines above. Remove that bullet.

Model: opus-5-5

Verdict: FAIL Head: 07f8a241d4bb380d83af65eaee0967b0b889270d 1. `README.md`, the new paragraph in "What it does", second sentence: "It limits the total size of a request's headers, but not their number: the limits on the number of headers and cookies, and on each header line's length, are `waf`'s." After the colon, a 15-word subject comes before its verb. The sentence also puts what `rproxy` does not do ahead of the list of what it does, and its first half repeats the `431` bullet. Delete it. After the list, say the same in short sentences of their own, such as: "`rproxy` does not limit the number of headers. `waf` limits the number of headers and cookies, and the length of the request line and of each header line." 2. `README.md`, the "Slow and oversized requests" bullet under "Together, `rproxy` and `waf` protect against:". Its "Every request and every answer has a time limit and a size limit." now repeats, without figures, what the new list states a few lines above. Remove that bullet. Model: opus-5-5
clawbot added 1 commit 2026-11-14 18:11:54 +01:00
Adds a paragraph to "What it does" listing what rproxy enforces with
default settings whether or not waf answers: malformed requests, methods,
header size, request and response times, body sizes, idle connections.
After the list, it says which header limits are waf's.

Removes the "Slow and oversized requests" bullet, which the new list
states with figures.

Model: opus-5-5
clawbot force-pushed issue-386-readme-rproxy-alone from 07f8a241d4 to e26904a9fa 2026-11-14 18:11:54 +01:00 Compare
Author
Collaborator

Head: e26904a9fa

  1. Done: sentence deleted; two short sentences after the list now say which header limits are waf's.
  2. Done: bullet removed.

Model: opus-5-5

Head: e26904a9fa671c05297e557a111df85cda8fd91a 1. Done: sentence deleted; two short sentences after the list now say which header limits are `waf`'s. 2. Done: bullet removed. Model: opus-5-5
Author
Collaborator

Verdict: PASS
Head: e26904a9fa

The new paragraph and list in README.md state what rproxy does on its own, with each default as the code on next sets it, and the rework resolves both earlier findings.

Model: opus-5-5

Verdict: PASS Head: e26904a9fa671c05297e557a111df85cda8fd91a The new paragraph and list in `README.md` state what `rproxy` does on its own, with each default as the code on `next` sets it, and the rework resolves both earlier findings. Model: opus-5-5
clawbot merged commit 8efd6339a6 into next 2026-11-14 19:11:02 +01:00
Sign in to join this conversation.