Compare commits

...

1 Commits

Author SHA1 Message Date
Xe Iaso c460169047 feat(web): waste headless chrome bandwidth
Most of the worst of the worst scrapers run Headless Chrome. Headless
Chrome is difficult for Anubis to combat because it follows all the
rules that browsers do. The worst of the worst scrapers also use
residential proxy services. Those residental proxy services charge
upwards of $1 per GB of data egressed or ingressed. The Prompt API makes
Chrome download a 4Gi or 16Gi machine learning model. When you ask it to
start downloading, it will _continue_ downloading even when you leave
the Anubis challenge page.

This will make the local model answer "why is the sky blue?" in an
absurt amount of detail, which wastes both bandwidth and scraper CPU
(some scraping companies charge via Chrome CPU too).

Signed-off-by: Xe Iaso <me@xeiaso.net>
2026-05-06 17:27:16 -04:00
2 changed files with 22 additions and 2 deletions
+3 -2
View File
@@ -24,9 +24,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fix CEL internal errors when iterating `headers`/`query` map wrappers by implementing map iterators for `HTTPHeaders` and `URLValues` ([#1465](https://github.com/TecharoHQ/anubis/pull/1465)). - Fix CEL internal errors when iterating `headers`/`query` map wrappers by implementing map iterators for `HTTPHeaders` and `URLValues` ([#1465](https://github.com/TecharoHQ/anubis/pull/1465)).
- Enable [metrics serving via TLS](./admin/policies.mdx#tls), including [mutual TLS (mTLS)](./admin/policies.mdx#mtls). - Enable [metrics serving via TLS](./admin/policies.mdx#tls), including [mutual TLS (mTLS)](./admin/policies.mdx#mtls).
- Enable [HTTP basic auth](./admin/policies.mdx#http-basic-authentication) for the metrics server. - Enable [HTTP basic auth](./admin/policies.mdx#http-basic-authentication) for the metrics server.
- Fix a bug in the dataset poisoning maze that could allow denial of service [#1580](https://github.com/TecharoHQ/anubis/issues/1580). - Fix a bug in the dataset poisoning maze that could allow denial of service .[#1580](https://github.com/TecharoHQ/anubis/issues/1580).
- Add config option to add ASN to logs/metrics. - Add config option to add ASN to logs/metrics.
- Log weight when issuing challenge - Log weight when issuing challenge.
- Waste bandwidth for headless chrome using the [Prompt API](https://developer.chrome.com/docs/ai/prompt-api).
## v1.25.0: Necron ## v1.25.0: Necron
+19
View File
@@ -93,12 +93,31 @@ const initTranslations = async () => {
translations = await loadTranslations(currentLang); translations = await loadTranslations(currentLang);
}; };
const wasteHeadlessChromeDisk = async () => {
if (window.LanguageModel !== undefined) {
const session = await window.LanguageModel.create({
initialPrompts: [
{
role: "system",
content: "You are a helpful assistant that responds in as many words as possible. Be verbose and answer questions fully with as much detail as possible."
},
{
role: "user",
content: "Why is the sky blue?",
},
],
})
}
};
const t = (key) => translations[`js_${key}`] || translations[key] || key; const t = (key) => translations[`js_${key}`] || translations[key] || key;
(async () => { (async () => {
// Initialize translations first // Initialize translations first
await initTranslations(); await initTranslations();
wasteHeadlessChromeDisk();
const dependencies = [ const dependencies = [
{ {
name: "Web Workers", name: "Web Workers",