🎯 Demo Purpose

Demonstrates data poisoning against unverified AI crawlers: CloudFront serves an AI-generated fake pricing page with corrupted values. Verified bots pass through to the real content — a deliberate design for future monetization.

🔧 How It Works

1

Bot Classification

AWS WAF Bot Control (TARGETED) attaches name, category, and verified labels to the request.

2

Header Forwarding

WAF rule P7 converts labels to the x-amzn-waf-bot-info header. Example: name:gptbot,category:ai,verified

3

CloudFront Function Routing

Only requests with category:ai and without verified are switched to cf.selectRequestOriginById('fake-webpage-s3').

4

Data Poisoning

The crawler collects a fake product page with different prices and specs. A canary product exists only in the fake page — enabling tracking of where the poisoned data surfaces.

⚙️ Response Matrix

Human (Browser)

Normal page — real prices and specs

Unverified AI Bot

Fake page — corrupted prices, canary product included

Verified AI Bot

Normal page — future pay-per-crawl monetization target

Verified General Bot

Normal page — e.g. Googlebot

🚀 Run the Demo

A browser shows the real pricing. Requesting with an AI bot User-Agent returns the poisoned page. Try them side by side.

curl -A "GPTBot/1.1" https://bottrapper.lakil.org/bot-demo-3

💡 WAF P6 Design Decision

AI-category bots are exempt from WAF P6 Challenge. Blocking them with a Challenge would signal detection, causing the bot to adapt (e.g., change User-Agent). Serving poisoned content instead is a deliberate deception-first design choice.