nuke/docs/docs/admin
Xe Iaso 122e4bc072
feat: first implementation of honeypot logic (#1342)
* feat: first implementation of honeypot logic

This is a bit of an experiment, stick with me.

The core idea here is that badly written crawlers are that: badly
written. They look for anything that contains `<a href="whatever" />`
tags and will blindly use those values to recurse. This takes advantage
of that by hiding a link in a `<script>` tag like this:

```html
<script type="ignore"><a href="/bots-only">Don't click</a></script>
```

Browsers will ignore it because they have no handler for the "ignore"
script type.

This current draft is very unoptimized (it takes like 7 seconds to
generate a page on my tower), however switching spintax libraries will
make this much faster.

The hope is to make this pluggable with WebAssembly such that we force
administrators to choose a storage method. First we crawl before we
walk.

The AI involvement in this commit is limited to the spintax in
affirmations.txt, spintext.txt, and titles.txt. This generates a bunch
of "pseudoprofound bullshit" like the following:

> This Restoration to Balance & Alignment
>
> There's a moment when creators are being called to realize that the work
> can't be reduced to results, but about energy. We don't innovate products
> by pushing harder, we do it by holding the vision. Because momentum can't
> be forced, it unfolds over time when culture are moving in the same
> direction. We're being invited into a paradigm shift in how we think
> about innovation. [...]

This is intended to "look" like normal article text. As this is a first
draft, this sucks and will be improved upon.

Assisted-by: GLM 4.6, ChatGPT, GPT-OSS 120b
Signed-off-by: Xe Iaso <me@xeiaso.net>

* fix(honeypot/naive): optimize hilariously

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

* feat(honeypot/naive): attempt to automatically filter out based on crawling

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

* fix(lib): use mazeGen instead of bsGen

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

* docs: add honeypot docs

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

* chore(test): go mod tidy

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

* chore: fix spelling metadata

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

* chore: spelling

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

---------

Signed-off-by: Xe Iaso <me@xeiaso.net>
2025-12-16 04:14:29 -05:00
..
configuration Show how to use subrequest auth with Caddy (#1312) 2025-11-27 09:04:28 -05:00
environments Pass the remote IP to the proxied application (#1298) 2025-11-20 16:32:15 +00:00
frameworks s/Wordpress/WordPress in docs (#1020) 2025-08-24 02:52:09 +00:00
honeypot feat: first implementation of honeypot logic (#1342) 2025-12-16 04:14:29 -05:00
roles fix(data): add ruleset to explicitly allow Docker / OCI clients (#1253) 2025-11-08 00:17:25 +00:00
_category_.json add docs site based on docusarus (#35) 2025-03-20 15:06:58 -04:00
botstopper.mdx docs: update BotStopper docs based on new features 2025-09-14 20:16:43 +00:00
caveats-gitea-forgejo.mdx add docs site based on docusarus (#35) 2025-03-20 15:06:58 -04:00
caveats-xff.mdx feat: support reading real client IP from a custom header (#1138) 2025-09-25 04:01:24 -04:00
default-allow-behavior.mdx feat(docs): add documentation for default allow behavior (#346) 2025-04-24 01:13:21 +00:00
installation.mdx docs: clarify usage of PUBLIC_URL and REDIRECT_DOMAINS in installatio… (#1286) 2025-11-17 12:11:34 -05:00
native-install.mdx correct gitea.botPolicies extension to be yaml, not json (#800) 2025-07-10 17:10:47 +00:00
policies.mdx fix(config): deprecate the report_as field for challenges (#1311) 2025-11-25 23:25:17 -05:00
robots2policy.mdx feat: add robots2policy CLI to convert robots.txt to Anubis CEL (#657) 2025-06-14 23:41:00 -04:00
thoth.mdx fix(geo): correct typo "counties" to "countries" (#678) 2025-06-17 23:50:42 -04:00