zektyc/public/fingerprint-test/en/index.html
riricdev 1482c6aaf0 feat: easter egg théière 418 + Konami obfusqué via global.js centralisé
- /418/ (et /fr|en/418) : vraie page HTTP 418 'Je suis une théière', SVG
  animé (vapeur), boutons café (refus RFC 2324) / thé (toast), noindex.
- Nouveau public/js/global.js chargé sur toutes les pages (statiques,
  dynamiques articles/blog, page d'erreur) qui :
  * écoute le code Konami ↑↑↓↓←→←→BA → redirige vers /418/ ;
  * charge ses clés par codes de caractères (aucune chaîne révélatrice en
    clair : ni 'ArrowUp', ni '/418/', ni 'b/a' dans la source) ;
  * sert de dispatcher centralisé : injecte par page (components/discord/
    zfprobe) via <body data-page=...> ou règles de chemin, sans doublon.
- easter.js supprimé au profit de global.js unique sur 22 pages statiques.
2026-09-07 15:16:20 +02:00

168 lines
7.4 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta
name="description"
content="Test your browser fingerprint: find out how identifiable your browser is, with a score, explanations and tips to protect yourself. No data is sent or stored."
/>
<meta name="robots" content="index, follow" />
<title>Browser Fingerprint Test · Zektyc</title>
<link rel="canonical" href="https://riricdev.tail5ea5cd.ts.net/en/fingerprint-test" />
<link rel="alternate" hreflang="fr" href="https://riricdev.tail5ea5cd.ts.net/fr/fingerprint-test" />
<link rel="alternate" hreflang="en" href="https://riricdev.tail5ea5cd.ts.net/en/fingerprint-test" />
<link rel="alternate" hreflang="x-default" href="https://riricdev.tail5ea5cd.ts.net/fr/fingerprint-test" />
<meta name="theme-color" content="#070a0f" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Zektyc" />
<meta property="og:title" content="Browser Fingerprint Test · Zektyc" />
<meta
property="og:description"
content="Find out how identifiable your browser is, with a score, explanations and tips to protect yourself."
/>
<meta property="og:url" content="https://riricdev.tail5ea5cd.ts.net/en/fingerprint-test" />
<meta property="og:image" content="https://riricdev.tail5ea5cd.ts.net/og-image.png" />
<meta property="og:locale" content="en_US" />
<meta property="og:locale:alternate" content="fr_FR" />
<meta name="twitter:card" content="summary_large_image" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="shortcut icon" href="/favicon.ico" />
<link rel="stylesheet" href="/css/style.css?v=8" />
<link rel="stylesheet" href="/css/zfprobe.css?v=14" />
</head>
<body>
<header id="h"></header>
<main class="fp-main" id="main">
<section class="fp-hero" id="ft-hero">
<p class="hero-badge">Nothing leaves your browser</p>
<h1>Browser Fingerprint Test</h1>
<p class="fp-sub" id="ft-intro"></p>
<div class="fp-actions">
<button type="button" class="fp-cta" id="ft-run"></button>
</div>
<p class="fp-status" id="ft-status"></p>
</section>
<section class="fp-multi fp-hidden" id="ft-multi">
<h2 id="ft-multi-title"></h2>
<p class="fp-sub" id="ft-multi-intro"></p>
<div class="fp-multi-scores">
<div class="fp-score-card">
<span class="fp-score-val" id="ft-sec-score">—</span>
<span class="fp-score-lbl" id="ft-sec-lbl"></span>
</div>
<div class="fp-score-card">
<span class="fp-score-val" id="ft-stab-score">—</span>
<span class="fp-score-lbl" id="ft-stab-lbl"></span>
</div>
</div>
<div class="fp-id-cards">
<div class="fp-id-card fp-id-card-zfp">
<div class="fp-id-card-head">
<span class="fp-id-card-badge">ZFP</span>
<span class="fp-id-card-subtitle" id="ft-zfp-sub"></span>
</div>
<div class="fp-id-card-val" id="ft-multi-zfp">—</div>
<span class="fp-id-card-status" id="ft-zfp-status"></span>
<p class="fp-id-card-desc" id="ft-zfp-desc"></p>
</div>
<div class="fp-id-card fp-id-card-zpd">
<div class="fp-id-card-head">
<span class="fp-id-card-badge fp-id-card-badge-dev">ZPD</span>
<span class="fp-id-card-subtitle" id="ft-zpd-sub"></span>
</div>
<div class="fp-id-card-val" id="ft-multi-zpd">—</div>
<span class="fp-id-card-status" id="ft-zpd-status"></span>
<p class="fp-id-card-desc" id="ft-zpd-desc"></p>
</div>
</div>
<div class="fp-multi-table-wrap">
<div class="fp-multi-list" id="ft-multi-table"></div>
</div>
<div class="fp-protection" id="ft-protection"></div>
<div class="fp-reco" id="ft-reco"></div>
<div class="fp-actions">
<button type="button" class="fp-cta" id="ft-restart"></button>
</div>
</section>
<section class="fp-result fp-hidden" id="ft-result">
<div class="fp-idcard">
<div class="fp-idbox">
<div class="fp-idbox-head">
<span class="fp-label" id="ft-id-label"></span>
<span class="fp-badge fp-badge-browser">Browser</span>
</div>
<div class="fp-id" id="ft-id">—</div>
<p class="fp-id-how" id="ft-id-how"></p>
</div>
<div class="fp-idbox">
<div class="fp-idbox-head">
<span class="fp-label" id="ft-device-label"></span>
<span class="fp-badge fp-badge-device">Device</span>
</div>
<div class="fp-id" id="ft-device-id">—</div>
<p class="fp-id-how" id="ft-device-how"></p>
</div>
<div class="fp-stats">
<div class="fp-stat-row">
<span class="fp-stat-key" id="ft-entropy-label"></span>
<span class="fp-stat-val" id="ft-bits">—</span>
</div>
<div class="fp-stat-row">
<span class="fp-stat-key" id="ft-browser-entropy-label"></span>
<span class="fp-stat-val" id="ft-browser-bits">—</span>
</div>
<div class="fp-stat-row">
<span class="fp-stat-key" id="ft-device-entropy-label"></span>
<span class="fp-stat-val" id="ft-device-bits">—</span>
</div>
<div class="fp-stat-row">
<span class="fp-stat-key" id="ft-level-label"></span>
<span class="fp-stat-val" id="ft-level">—</span>
</div>
<div class="fp-stat-row">
<span class="fp-stat-key" id="ft-device-level-label"></span>
<span class="fp-stat-val" id="ft-device-level">—</span>
</div>
<div class="fp-stat-row">
<span class="fp-stat-key" id="ft-pop-label"></span>
<span class="fp-stat-val" id="ft-pop">—</span>
</div>
<div class="fp-stat-row">
<span class="fp-stat-key" id="ft-score-label"></span>
<span class="fp-stat-val" id="ft-score">—</span>
</div>
<div class="fp-bar"><div id="ft-bar"></div></div>
<div class="fp-bar fp-bar-device"><div id="ft-device-bar"></div></div>
<p class="fp-meta-note" id="ft-stable"></p>
<p class="fp-meta-note" id="ft-device-stable"></p>
<p class="fp-meta-note" id="ft-stability-label"></p>
</div>
</div>
<p class="fp-note" id="ft-entropy-note"></p>
<p class="fp-note" id="ft-estimated-note"></p>
</section>
<section class="fp-section fp-hidden" id="ft-signals-section">
<h2 id="ft-signals-title"></h2>
<div class="fp-grid" id="ft-signals"></div>
</section>
<section class="fp-section fp-education">
<h2 id="ft-what-title"></h2>
<div id="ft-what"></div>
</section>
<p class="fp-note fp-privacy" id="ft-privacy-note"></p>
</main>
<footer id="f"></footer>
<script src="/js/theme.js" defer></script>
<script src="/js/global.js?v=1" defer></script>
<script src="/js/components.js?v=6" defer></script>
<script src="/js/zfprobe.js?v=15" defer></script>
</body>
</html>