nuke/.github/actions/spelling
Xe Iaso b640c567da
feat(lib): ensure that clients store cookies (#501)
* feat(lib): ensure that clients store cookies

If a client is misconfigured and does not store cookies, then they can
get into a proof of work death spiral with Anubis. This fixes the
problem by setting a test cookie whenever the user gets hit with a
challenge page. If the test cookie is not there at challenge pass time,
then they are blocked. Administrators will also get a log message
explaining that the user intentionally broke cookie support and that this
behavior is not an Anubis bug.

Additionally, this ensures that clients being shown a challenge support
gzip-compressed responses by showing the challenge page at gzip level 1.
This level is intentionally chosen in order to minimize system impacts.

The ClearCookie function is made more generic to account for cookie
names as an argument. A correlating SetCookie function was also added to
make it easier to set cookies.

* chore(lib): clean up test code

Signed-off-by: Xe Iaso <me@xeiaso.net>

---------

Signed-off-by: Xe Iaso <me@xeiaso.net>
2025-05-16 13:03:40 -04:00
..
advice.md ci: add check-spelling (#462) 2025-05-09 17:02:41 +00:00
allow.txt ci(check-spelling): allow release names in spelling allowlists (#483) 2025-05-09 17:22:26 +00:00
candidate.patterns ci: add check-spelling (#462) 2025-05-09 17:02:41 +00:00
excludes.txt ci: add check-spelling (#462) 2025-05-09 17:02:41 +00:00
expect.txt feat(lib): ensure that clients store cookies (#501) 2025-05-16 13:03:40 -04:00
line_forbidden.patterns ci: add check-spelling (#462) 2025-05-09 17:02:41 +00:00
patterns.txt ci: add check-spelling (#462) 2025-05-09 17:02:41 +00:00
README.md ci: add check-spelling (#462) 2025-05-09 17:02:41 +00:00
reject.txt ci: add check-spelling (#462) 2025-05-09 17:02:41 +00:00

check-spelling/check-spelling configuration

File Purpose Format Info
dictionary.txt Replacement dictionary (creating this file will override the default dictionary) one word per line dictionary
allow.txt Add words to the dictionary one word per line (only letters and 's allowed) allow
reject.txt Remove words from the dictionary (after allow) grep pattern matching whole dictionary words reject
excludes.txt Files to ignore entirely perl regular expression excludes
only.txt Only check matching files (applied after excludes) perl regular expression only
patterns.txt Patterns to ignore from checked lines perl regular expression (order matters, first match wins) patterns
candidate.patterns Patterns that might be worth adding to patterns.txt perl regular expression with optional comment block introductions (all matches will be suggested) candidates
line_forbidden.patterns Patterns to flag in checked lines perl regular expression (order matters, first match wins) patterns
expect.txt Expected words that aren't in the dictionary one word per line (sorted, alphabetically) expect
advice.md Supplement for GitHub comment when unrecognized words are found GitHub Markdown advice

Note: you can replace any of these files with a directory by the same name (minus the suffix) and then include multiple files inside that directory (with that suffix) to merge multiple files together.