Skip to content

feat: first implementation of honeypot logic#1342

Merged
Xe merged 8 commits intomainfrom
Xe/honeypot
Dec 16, 2025
Merged

feat: first implementation of honeypot logic#1342
Xe merged 8 commits intomainfrom
Xe/honeypot

Conversation

@Xe
Copy link
Copy Markdown
Contributor

@Xe Xe commented Dec 15, 2025

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:

<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. EDIT(2025-12-16 01:32 UTC-4): This has been fixed and it takes microseconds now.

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 according to normal word frequency graphs. LinkedIn being so vacuous helps a lot here. As this is a first draft, this sucks and will be improved upon.

Assisted-by: GLM 4.6, ChatGPT, GPT-OSS 120b

Checklist:

  • Added a description of the changes to the [Unreleased] section of docs/docs/CHANGELOG.md
  • Added test cases to the relevant parts of the codebase
  • Ran integration tests npm run test:integration (unsupported on Windows, please use WSL)
  • All of my commits have verified signatures

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>
@Xe Xe self-assigned this Dec 15, 2025
Comment thread web/index_templ.go Fixed
Comment thread web/index.templ Fixed
Comment thread lib/config.go Fixed
Comment thread lib/config.go Fixed
Comment thread internal/honeypot/naive/naive.go Fixed
Comment thread web/index.templ Dismissed
Comment thread web/index.templ Dismissed
Comment thread internal/honeypot/naive/affirmations.txt Dismissed
Comment thread web/index_templ.go Dismissed
Comment thread web/index_templ.go Dismissed
Signed-off-by: Xe Iaso <me@xeiaso.net>
Comment thread lib/config.go Fixed
Comment thread internal/honeypot/naive/naive.go Fixed
Comment thread internal/honeypot/naive/naive.go Fixed
Comment thread internal/honeypot/naive/naive.go Fixed
Comment thread internal/honeypot/naive/naive.go Fixed
Comment thread internal/honeypot/naive/naive.go Fixed
Comment thread internal/honeypot/naive/naive.go Fixed
…awling

Signed-off-by: Xe Iaso <me@xeiaso.net>
Comment thread lib/config.go Fixed
Comment thread lib/config.go Fixed
Comment thread internal/clampip_test.go Fixed
Comment thread internal/clampip.go Fixed
Xe added 2 commits December 16, 2025 01:26
Signed-off-by: Xe Iaso <me@xeiaso.net>
Signed-off-by: Xe Iaso <me@xeiaso.net>
Comment thread docs/docs/admin/honeypot/overview.mdx Fixed
Comment thread docs/docs/admin/honeypot/overview.mdx Fixed
Comment thread docs/docs/admin/honeypot/overview.mdx Fixed
Comment thread docs/docs/admin/honeypot/overview.mdx Fixed
Comment thread .github/actions/spelling/allow.txt Fixed
Xe added 3 commits December 16, 2025 04:04
Signed-off-by: Xe Iaso <me@xeiaso.net>
Signed-off-by: Xe Iaso <me@xeiaso.net>
Signed-off-by: Xe Iaso <me@xeiaso.net>
@Xe Xe merged commit 122e4bc into main Dec 16, 2025
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants