Guide
Are QR codes safe?
A QR code is text. It cannot install anything by itself. The risk is entirely in what the text points at — and in the fact that you cannot read it before you go there.
QR codes cannot install malware by themselves — they contain text, and scanning displays or opens it. The real risk is that the destination is hidden until you scan, which attackers exploit by placing fraudulent codes over legitimate ones. Checking the domain before acting removes most of the risk.
The actual capabilities
| A QR code can | A QR code cannot |
|---|---|
| Open a website | Install software without your consent |
| Prefill an email, message or dialler | Send anything automatically |
| Join a Wi-Fi network after a prompt | Access your files or photos |
| Add a contact or calendar entry after a prompt | Read your passwords |
| Open a payment app with details prefilled | Complete a payment without confirmation |
| Display plain text | Run code on your phone |
Every action requires a confirmation step. The danger is not the code executing something — it is you approving something you did not fully understand.
How the attacks actually work
Quishing — QR phishing — exploits the one property that makes codes useful: they are unreadable to humans. You cannot check a destination you cannot see.
The patterns that recur:
- Sticker overlays. A fraudulent code stuck over the real one on a parking meter, EV charger or ticket machine. The victim pays a convincing-looking clone.
- Postal and email lures. Letters or emails appearing to be from a bank, tax authority or delivery company, with a code leading to a credential-harvesting page. Codes are used specifically because email security filters inspect links and not images.
- Fake table cards. Restaurant tables with an added code offering a discount, harvesting card details.
- Charity and donation codes in public places, redirecting to an attacker's payment page.
- Unsolicited packages containing a code, exploiting curiosity about an unexpected delivery.
A routine that takes ten seconds
- Look at the physical code. Is it a sticker over something else? Are the edges lifting? Is the print quality different from the surrounding material? On public infrastructure, a sticker is the whole tell.
- Decode before you go. Photograph it and use the reader, which shows the destination without opening it.
- Read the domain, right to left. The real domain is the part immediately before the first single slash.
yourbank.com.secure-login.xyzissecure-login.xyz, not your bank. - Apply the usual rules. Do not enter credentials or card details on a page you reached from a code. Navigate to the site yourself instead.
- Treat urgency as a warning. Fines, account suspensions and expiring offers are pressure tactics, not deadlines.
Reducing the risk for your own customers
- Print your domain in readable text next to every code, so people can verify where it should go.
- Use your own domain rather than a third-party shortener. Customers cannot verify
qrs.ly/a1b2, and neither can security filters. - Laminate or engrave codes on public equipment so a sticker is visibly wrong.
- Check installations physically on a schedule. Overlay attacks are found by looking, not by monitoring.
- Never ask for payment card details on a page reached only by scanning a code — you are training your customers into the exact behaviour that attackers rely on.
Frequently asked
Can a QR code give my phone a virus?
What is quishing?
How can I see where a QR code goes before opening it?
Are QR codes on parking meters safe?
Is it safe to scan a QR code from a letter?
Last reviewed 24 August 2026 · Written and reviewed by the QR Code Builder team