test de Cloudflare Worker avec Durable Object qui affiche un QR code interactif et des statistiques temps réel sur les visiteurs (FAI, OS, navigateurs, total des accès).
Ce projet illustre comment utiliser les Workers Cloudflare pour collecter et diffuser des données dynamiques sans serveur externe. Il montre, en direct, ce qui se passe quand on scanne un QR code ou clique sur un lien inconnu.
Objectif : faire ressentir concrètement que derrière un simple geste, on expose déjà beaucoup d’informations — adresse IP, FAI, système, navigateur…
Une démonstration simple, visuelle et marquante pour rappeler qu’en cybersécurité, la curiosité est parfois le premier vecteur de risque.
- Affichage central d’un QR code vers
https://quish.securitydomains.cloud/ - Compteurs en temps réel (WebSocket + Durable Object)
- Total des accès
- Top 4 FAI / ISP
- Top 4 OS
- Top 4 Navigateurs
- Vue des OS & navigateurs à partir du User-Agent
- ajout de fonction **Reset ** via
/reset?code=SECRET
Navigateur ──GET /────────────┐
└─WS /ws──────────┼─ Worker (edge) ─► Durable Object (StatsRoom)
│ ▲
└─XHR /stats───────┘ │ persistance + agrégation
│
stockage Durable Object ("stats")
La partie XHR est un mecanisme (ajax) pour permettre a la page web de continuer de communiquer avec le serveur sans refresh de la page
- Node.js
- Wrangler
- Un domaine sur votre instance Cloudflare
- Un accès au tableau de bord Cloudflare avec Workers & Durable Objects activés
# Cloner le dépôt
git clone https://github.com/cdrclbrs/livequish.git
cd livequish
# Installer wrangler
npm install -g wrangler
wrangler loginname = "<projectname>"
main = "worker.mjs"
compatibility_date = "2025-08-01"
[[routes]]
pattern = "quish.securitydomains.cloud/*"
zone_name = "securitydomains.cloud"
[durable_objects]
bindings = [
{ name = "STATS_ROOM", class_name = "StatsRoom" }
]
[[migrations]]
tag = "v1"
new_sqlite_classes = ["StatsRoom"]Ajoutez le secret pour le reset sécurisé :
wrangler secret put RESET_CODE
# → entrez votre code (ex : 76636636363643432)wrangler deployAcces :
👉 https://quish.securitydomains.cloud/
| Méthode | Chemin | Description |
|---|---|---|
| GET | /reset?code=XXXX |
Réinitialise les stats |
Projet librement réutilisable à des fins d’apprentissage et de démonstration Cloudflare Workers.
démonstrations CF / cybersécurité.
