In my free time, I help run a small Mastodon server for roughly six hundred queer leatherfolk. When a new member signs up, we require them to write a short application—just a sentence or two. There’s a small text box in the signup form which says:
Please tell us a bit about yourself and your connection to queer leather/kink/BDSM. What kind of play or gear gets you going?
This serves a few purposes. First, it maintains community focus. Before this question, we were flooded with signups from straight, vanilla people who wandered in to the bar (so to speak), and that made things a little awkward. Second, the application establishes a baseline for people willing and able to read text. This helps in getting people to follow server policy and talk to moderators when needed. Finally, it is remarkably effective at keeping out spammers. In almost six years of operation, we’ve had only a handful of spam accounts.
I was talking about this with Erin Kissane last year, as she and Darius Kazemi conducted research for their report on Fediverse governance. We shared a fear that Large Language Models (LLMs) would lower the cost of sophisticated, automated spam and harassment campaigns against small servers like ours in ways we simply couldn’t defend against.
Question: what would happen if the server implemented something like Anubis on the application and/or create post pages? Would that not block most bots from completing these forms? Is that just not feasible at our scale?
I think Anubis is really focused on scraper-bots feeding AI models, rather than posting bots. It’s based on requests to non-standard endpoints in your own app, which you specify for Anubis in a couple places (e.g. leaving out of /robots.txt or /.well-known).
If you’re using e.g. a python bot that uses headless chromium executing JS to post stuff, you’re probably going to code in known-good endpoints for comments and posts, rather than hitting random ones like a scraper bot would.
Anubis is good for stopping the n-request-per-second spamming of scrapers, but not so much for just blocking non-human bots that post at normal rates.
My last employer was a Fortune 50, and we did automation detection through behavioral mapping, like posting locations, times, and even word patterns (a very cool experimental project that I got to work on, which used a database of normalized English word frequency to detect bots based on language that was too-similar across users, or even too “perfect”, though this was only used as an indicator and never considered definitive). It is extremely difficult to detect human-impersonating bots based on raw network traffic alone.