Bot Demo 3: AI Crawler Trap
🎯 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
Bot Classification
AWS WAF Bot Control (TARGETED) attaches name, category, and verified labels to the request.
Header Forwarding
WAF rule P7 converts labels to the x-amzn-waf-bot-info header. Example: name:gptbot,category:ai,verified
CloudFront Function Routing
Only requests with category:ai and without verified are switched to cf.selectRequestOriginById('fake-webpage-s3').
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.