QR safety lab
Run predictable QR destination checks directly in your browser.
No destination is visited or fetched; the decoded content stays available for review and copying.
- Release
- 2026-07-20-v1
- Updated
- Test cases
- 10
Summary
10/10 Pass
1
Clear indicates no matching structural warning in this release; it is not proof that a destination is safe.
5
Caution marks a destination structure that deserves deliberate review before opening.
3
Blocked prevents direct opening. The raw decoded content remains visible and can be copied.
Test matrix
| Test cases | Payload | Expected | Observed | Warning |
|---|---|---|---|---|
| Plain HTTPS destinationhttps-clear | https://example.com/docs | Clear | Clear | A conventional HTTPS URL with no release 1 structural warning. |
| Unencrypted HTTP destinationhttp-caution | http://example.com/docs | Caution | Caution | HTTP does not provide the transport protection expected from HTTPS. |
| Shortened destination URLshortener-caution | https://bit.ly/ | Caution | Caution | A short URL hides the eventual destination behind a redirect service. |
| Punycode hostnamepunycode-caution | https://xn--e1afmkfd.invalid/ | Caution | Caution | Punycode can represent internationalized hostnames that need careful visual review. |
| Public IP address destinationpublic-ip-caution | https://203.0.113.10/login | Caution | Caution | A public IP address is less recognizable than a named domain. |
| Tracking-heavy destination URLtracking-caution | https://example.com/?utm_source=poster | Caution | Caution | Numerous tracking parameters can obscure the meaningful destination path. |
| Embedded URL credentialscredentials-blocked | https://user:password@example.invalid/ | Blocked | Blocked | User credentials embedded in a URL can mislead readers about the true host. |
| Private-network destinationprivate-network-blocked | https://localhost/admin | Blocked | Blocked | Private or loopback network targets must not be opened directly. |
| Control character in destinationcontrol-character-blocked | https://example.invalid/\nnext | Blocked | Blocked | Control characters can change how a destination is displayed or interpreted. |
| Non-web intentnon-web-intent | mailto:hello@example.com | Not applicable | Not applicable | This payload invokes a non-web scheme and is outside direct web navigation. |
Methodology
- Checks are deterministic and run locally in the browser.
- No destination is visited, requested, or fetched during classification.
- Release 1 tests destination structure only, not the content or reputation of a site.
- Results are based on the decoded payload exactly as supplied to the checker.
Limitations
- Clear is not proof of safety, legitimacy, or harmless content.
- This release does not follow redirects, query APIs, or inspect destination pages.
- A blocked result disables direct opening, while keeping raw decoded content visible and copyable.
- Classification cannot replace user judgment or an organization’s security controls.
QR Safety Lab citation information
Research and data about local structural checks for QR destinations. Structural checks do not prove that a destination is safe.
- Publisher
- QR Code Crafter, Brand Aspect LtdCompany Registration Number: 05105266Legal information
- Suggested citation
- QR Code Crafter. “QR Safety Lab.” Release 2026-07-20-v1. Brand Aspect Ltd, July 20, 2026. https://qrcodecrafter.com/qr-code-safety-lab
- Corrections
- Report factual errors or problems reproducing this release. contact@qrcodecrafter.com
Release history
A dated record of the evidence included in each public dataset release.
- Current release
- 2026-07-20-v1
- First public release
- Evidence in this release
- Published 10 deterministic destination-structure fixtures with matching JSON, CSV, methodology and citation files.
- Published:
Compatibility scope
Export readability benchmark
This reproducible local benchmark generates QR files under controlled raster and vector conditions, then checks whether the site decoder recovers the exact payload.
2026-07-22-v1
A software fixture result is not a device, printer, ISO, or security certification. Test the final placement on real devices.
- Exact decodes
- 19/21
- Clean baselines
- 4/4
- Stressed files
- 17
| Case | Format | Condition | Dimensions | Result |
|---|---|---|---|---|
| png-clean-256 | png | Clean export | 256 x 256 | Exact decode |
| jpg-clean-256 | jpg | Clean export | 256 x 256 | Exact decode |
| webp-clean-256 | webp | Clean export | 256 x 256 | Exact decode |
| svg-clean-256 | svg | Clean export | 256 x 256 | Exact decode |
| png-small-96 | png | Small output | 96 x 96 | Exact decode |
| png-small-64 | png | Small output | 64 x 64 | Exact decode |
| png-quiet-zone-2 | png | Reduced quiet zone | 256 x 256 | Exact decode |
| png-quiet-zone-0 | png | No quiet zone | 256 x 256 | Exact decode |
| png-low-contrast | png | Low contrast | 256 x 256 | Exact decode |
| png-very-low-contrast | png | Low contrast | 256 x 256 | Not decoded |
| jpg-quality-45 | jpg | Heavy compression | 256 x 256 | Exact decode |
| jpg-quality-15 | jpg | Heavy compression | 256 x 256 | Exact decode |
| png-blur-0-8 | png | Blurred image | 256 x 256 | Exact decode |
| png-blur-2-0 | png | Blurred image | 256 x 256 | Exact decode |
| png-rotate-8 | png | Rotated image | 289 x 289 | Exact decode |
| png-rotate-18 | png | Rotated image | 323 x 323 | Exact decode |
| png-center-obstruction-h-12 | png | Center obstruction | 256 x 256 | Exact decode |
| png-center-obstruction-m-28 | png | Center obstruction | 256 x 256 | Not decoded |
| png-dense-256 | png | Dense payload | 256 x 256 | Exact decode |
| png-dense-128 | png | Dense payload | 128 x 128 | Exact decode |
| png-wifi-192 | png | Clean export | 192 x 192 | Exact decode |
Frequently asked questions
- Does this tool open the QR destination?
- No. All checks are local and deterministic, and no destination is visited or fetched.
- Does Clear mean the link is safe?
- No. Clear only means release 1 found no matching structural warning.
- What happens to blocked destinations?
- Direct opening is disabled, but the raw decoded content remains visible and can be copied.