Wi-Fi Guard — privacy and verification (2026-10-25) No account. No cookies, localStorage, analytics, advertisements, cloud OCR, web fonts, external package managers, image upload endpoint, or service worker. The site consists of the first-party files index.html, style.css, app.js, models.js and this document. It has no JavaScript/WASM dependencies. Photos are handled as temporary local browser Blob URLs and are cleared from the page when a device is selected, when you reset, or when you leave. The site tries only built-in browser TextDetector / BarcodeDetector APIs where supported; otherwise you read the label and enter the model yourself. For barcodes, model-like contents are only used as suggestions and must be visually confirmed. Serial numbers, passwords, SSIDs or MAC addresses do not become device model numbers. Raw codes are not displayed or transmitted. The site intentionally sends no requests from the application via fetch, XHR, sendBeacon or WebSockets. The CSP blocks connect-src ('none'), forms ('none'), image loads other than temporary blob: URLs, workers, iframes, and embedded objects. Caddy supplies the reviewed HTTP headers; _headers is an example for compatible hosts, not a public file. The HTML includes a meta CSP as a fallback. Navigation to a selected, official manufacturer site happens only after the visitor clicks a link. For an independent check: 1. Read app.js and models.js; note there are no external imports or APIs. 2. Open the site's Developer Tools > Network, select a photo, and confirm there is no POST/PUT or outbound network request caused by that photo. 3. In your browser's DevTools > Security/Network verify the CSP response header on the production host. 4. Compare sha256 hashes of the deployed HTML/CSS/JS with the distributed SOURCE_SHA256.txt (Linux sha256sum, macOS shasum -a 256). 5. Test the locally downloaded site without network access: the UI, photo preview and model entry still work. Links to manuals need network. Important limitations: - A Web page cannot automatically list your Wi-Fi devices or infer the model just from a router connection. - Native optical text recognition and BarcodeDetector are optional browser features and are not available everywhere. No automatic recognition is promised when absent. A barcode can be just a serial number, not the model. - This site does not determine if a device is compromised, safe, patched, supported or up to date. - It cannot prove a compromised browser, modified server-side JavaScript, malicious extension or compromised OS is harmless; hashes and independent deployment audit are still necessary. - CSP is only a defense-in-depth protection, not a mathematical proof of non-exfiltration. A malicious update, navigation, or compromised host may bypass the intended privacy model. - Model-specific links were checked on 2026-10-25. Vendor hardware revision, region, update status, and documentation can change. Initial-import review notes: - The browser/OS implementation of native recognition is a trust boundary. The application itself downloads no recognition model or fallback library; this does not prove that the OS never communicates outside the page. - Candidate filtering is a heuristic, not a guarantee that every secret or serial number can be recognized and excluded. Confirm suggestions yourself. - The camera roll, extensions, browser recovery and OS swap are outside the reset function's control; secure physical memory erasure is not guaranteed. - The original ZIP hash and actual test coverage are recorded in the private source repository's docs/PROVENANCE.md and docs/VERIFICATION.md.