Source Code
The entire project, readable in your browser. No hidden JavaScript, no sneaky beacons. If we claimed we don't track you, this is where you check.
|
Pages/
Feeds/
Backend/
Includes/
Stylesheet/
JavaScript/
data/counter.txt and data/guestbook.txt hold visitor-supplied content
(a number and signed messages), so they are not shown here.
|
1 <?php 2 /** 3 * about.php -- What this is, why it exists, and the changelog. 4 */ 5 require_once __DIR__ . '/includes/config.php'; 6 require_once __DIR__ . '/includes/functions.php'; 7 8 $PAGE_TITLE = 'About'; 9 $PAGE_ID = 'about.php'; 10 11 $updates = isset($GLOBALS['UPDATE_LOG']) ? $GLOBALS['UPDATE_LOG'] : array(); 12 13 include __DIR__ . '/includes/header.php'; 14 ?> 15 16 <h1><?php echo section_icon('folder', '#00FFFF', 22); ?> About</h1> 17 18 <div class="asciibox"> 19 <pre class="green mb0" style="font-size:15px"> 20 .-----------------------------------------------------. 21 | "What Can I Learn About You?" | 22 | A privacy demonstration disguised as a 2003 relic. | 23 '-----------------------------------------------------'</pre> 24 </div> 25 26 <h2>What is this?</h2> 27 <p> 28 A single-purpose website that shows you, in real time, how much a completely 29 ordinary web page can figure out about a visitor. No exploits. No malware. No 30 permission prompts. Just the information your browser hands over by default, 31 plus a handful of standard JavaScript APIs. 32 </p> 33 34 <h2>Why does it exist?</h2> 35 <p> 36 Because privacy policies are boring and nobody reads them. It is far more 37 convincing to simply <i>show</i> you what happens the instant you load a page: 38 your IP, your rough location, your ISP, your browser and OS, your hardware, 39 and a cookie-free <b>fingerprint</b> that can follow you across the web. 40 </p> 41 <p> 42 Once you have seen it, you cannot un-see it. And maybe you finally install 43 that tracker blocker you have been meaning to. 44 </p> 45 46 <h2>How was it built?</h2> 47 <table class="data"> 48 <tr><th>Thing</th><th>Choice</th></tr> 49 <tr><td>Language</td><td>Plain PHP <?php echo e(PHP_VERSION); ?> (8+)</td></tr> 50 <tr><td>Frontend</td><td>Hand-written HTML, CSS, and vanilla JavaScript</td></tr> 51 <tr><td>Frameworks</td><td class="green">None. Not one.</td></tr> 52 <tr><td>Database</td><td class="green">None. Flat text files for the counter and guestbook.</td></tr> 53 <tr><td>Build tools</td><td class="green">None. No Node, no Composer, no bundler.</td></tr> 54 <tr><td>Fonts</td><td>VT323, falling back to Courier New / Lucida Console</td></tr> 55 <tr><td>Deployment</td><td>Upload the files to any PHP shared host. That's it.</td></tr> 56 <tr><td>Aesthetic</td><td>Deliberately 1999–2005. Black screens, cyan links, borders, tables.</td></tr> 57 </table> 58 59 <h2>What it does NOT do</h2> 60 <ul class="retro"> 61 <li>It does <b>not</b> set cookies.</li> 62 <li>It does <b>not</b> run analytics or load third-party trackers.</li> 63 <li>It does <b>not</b> log your IP or your fingerprint.</li> 64 <li>It does <b>not</b> use a database.</li> 65 <li>It does <b>not</b> phone home. The only outbound call is a geo-IP lookup for <i>your</i> report.</li> 66 </ul> 67 68 <h2>Changelog</h2> 69 <table class="data"> 70 <tr><th>Date</th><th>Update</th><th>Details</th></tr> 71 <?php foreach ($updates as $u): ?> 72 <tr> 73 <td class="nowrap"><?php echo e($u[0]); ?></td> 74 <td class="cyan"><?php echo e($u[1]); ?></td> 75 <td><?php echo e($u[2]); ?></td> 76 </tr> 77 <?php endforeach; ?> 78 </table> 79 <p class="dim">Subscribe via the <a href="<?php echo eattr(url('rss.php')); ?>">RSS feed</a>.</p> 80 81 <h2>Credits & License</h2> 82 <p> 83 Released to the public domain. Take it, learn from it, host your own copy. 84 Greetz to everyone still running a CRT, everyone who remembers dial-up, and 85 everyone who ever signed a guestbook. 86 </p> 87 88 <div class="center"> 89 <?php echo section_icon('monitor'); ?> 90 <?php echo section_icon('globe'); ?> 91 <?php echo section_icon('chip'); ?> 92 <?php echo section_icon('lock'); ?> 93 <?php echo section_icon('warning'); ?> 94 <?php echo section_icon('folder'); ?> 95 <?php echo section_icon('eye'); ?> 96 <?php echo section_icon('key'); ?> 97 <?php echo section_icon('disk'); ?> 98 <?php echo section_icon('plug'); ?> 99 </div> 100 101 <?php include __DIR__ . '/includes/footer.php'; ?> 102 You are reading the real file being executed on the server. What you see is what runs. |