Bảo mật mã QR: Rủi ro của QR động và cái bẫy URL rút gọn

Đăng 2026-04-13 7 phút đọc

Tóm tắt (TL;DR)

Cách đây ít lâu tôi quét mã QR menu trong một quán cà phê và bị đưa tới một dịch vụ rút gọn ql.st lạ hoắc. Lật mặt sau thấy có một sticker mới dán đè lên QR gốc. Chủ quán nói họ đã không nhận ra điều đó suốt vài tuần. Các lỗ hổng tinh vi “tấn công” chính mã QR thì hiếm; các sự cố thực tế gần như luôn bắt đầu từ một tờ sticker như vậy.

Mã QR không phải “chỉ là một hình ảnh” mà là định dạng mã hoá một URL hoặc đoạn văn bản thành hình ảnh. Bản thân QR không có tính năng bảo mật, nên bảo mật gần như toàn bộ được quyết định bởi độ an toàn của URL đích mà người quét đi tới và cách tạo ra QR đó. QR tĩnh chứa URL trực tiếp trong mã, không thể thay đổi nội dung sau khi phát hành. QR động cho phép thay đổi nội dung nhưng phụ thuộc vào máy chủ chuyển hướng, nên khi dịch vụ ngừng hoạt động hoặc đổi chủ sở hữu, kết quả quét có thể chuyển sang trang hoàn toàn khác. URL rút gọn cũng có cùng vấn đề về hết hạn, chiếm đoạt và theo dõi, nên có thể không phù hợp với tài liệu in công cộng, tài liệu lưu trữ dài hạn và tài liệu offline. Mặc định an toàn nhất là tạo QR tĩnh từ URL tĩnh trên miền của chính bạn, và nếu tính chất chiến dịch yêu cầu theo dõi thì dùng QR động từ nhà cung cấp đáng tin cậy, nhưng phải lên kế hoạch chuyển hướng sau khi kết thúc chiến dịch.

Bối cảnh và khái niệm

Đặc tả chính thức của mã QR là ISO/IEC 18004, định nghĩa các phiên bản từ 1 đến 40; phiên bản càng cao thì số module (ô lưới) càng nhiều và có thể chứa nhiều dữ liệu hơn. Bên cạnh đó, mọi QR đều chứa một lượng dữ liệu sửa lỗi (Reed-Solomon). Có bốn mức:

  • L: phục hồi được khoảng 7% hư hỏng dữ liệu
  • M: khoảng 15%
  • Q: khoảng 25%
  • H: khoảng 30%

Tăng mức sửa lỗi giúp quét được ngay cả khi bản in bị bẩn hoặc logo che phủ, nhưng mật độ module tăng theo nên nếu in nhỏ thì việc quét lại khó hơn. Với danh thiếp hay poster, M thường là mặc định; nếu cần đặt logo giữa mã, hãy cân nhắc Q hoặc H.

QR tĩnh đặt URL trực tiếp vào các module, nên kết quả quét là vĩnh viễn. QR động chứa một “URL chuyển hướng ngắn” mà nhà cung cấp dịch vụ có thể đổi đích đến. Tiện lợi, nhưng chính sự linh hoạt đó là nguồn gốc của rủi ro dài hạn.

So sánh và dữ liệu

Tiêu chíQR tĩnhQR động
URL được mã hoáURL đích cuối cùng nguyên vẹnURL ngắn của bộ chuyển hướng
Theo dõi quét (tổng hợp)Mặc định không cóTính năng cơ bản
Rủi ro hết hạnKhông, miễn là bạn giữ miềnPhụ thuộc hợp đồng, gói giá, khả năng phá sản của nhà cung cấp
Phụ thuộc bên thứ baKhôngNhà cung cấp chuyển hướng
Bề mặt phishingChỉ cần kiểm tra URL đíchNếu bộ chuyển hướng bị hack hoặc đổi chủ, đích có thể đổi
Khả năng sửa đổiKhông (phải phát hành lại)Có (linh hoạt)

“URL ngắn trông gọn gàng hơn” là ưu điểm nhưng cũng là nhược điểm, vì người dùng không thể kiểm tra URL bằng mắt.

Tình huống thực tế

Tình huống 1 — Tài liệu in offline như danh thiếp và poster. Gần đây tôi moi lại một tấm danh thiếp in năm 2019 và link bit.ly ghi trên đó đã trả về 404 — có vẻ hợp đồng dịch vụ theo dõi hết hạn từ lâu. Mã hoá URL chính tắc trên miền của chính bạn vào QR tĩnh là lựa chọn bền nhất. Khi kích thước in nhỏ, hạ mức sửa lỗi xuống và giảm thiểu số module sẽ tăng tỷ lệ nhận dạng khi quét.

Tình huống 2 — Đo hiệu quả chiến dịch marketing. Một startup dùng QR động cho booth triển lãm, rồi ba tháng sau dịch vụ đó chuyển tính năng miễn phí sang thu phí và redirect sang trang “gói đã hết hạn”. Nếu có thể, tôi thường chọn kết hợp đường dẫn rút gọn trên miền riêng như yourdomain.com/go/summer-2026 với UTM — miễn là bạn còn giữ miền, không có thời hạn nào cả.

Tình huống 3 — Tính toàn vẹn và xác thực tài liệu. Thay vì URL, QR có thể chứa hash tài liệu hoặc tham số URL đã ký (?d=abc123&sig=...) để người quét có thể đối chiếu tính toàn vẹn với bản gốc. Trong một dự án chứng nhận, tôi đặt 16 ký tự đầu của SHA-256 kèm chữ ký HMAC; phiên bản QR tăng lên 10+ nên phải cân đối lại với kích thước in. Cách này hỗ trợ phát hiện giả mạo rất tốt với hợp đồng, chứng chỉ, nhãn sản phẩm.

Tình huống 4 — QR thanh toán. Ở Việt Nam, VietQR và các chuẩn tương tự nhúng số tài khoản, ngân hàng, số tiền vào dữ liệu QR chứ không phải URL. Điều này ít rủi ro phishing link hơn nhưng vẫn dễ bị tráo bằng sticker tại quán cà phê, tiệm nhỏ. Thói quen tốt: trước khi bấm xác nhận, đối chiếu tên người nhận hiển thị trong app ngân hàng với tên quán. Tôi từng suýt chuyển 450.000 VND cho một tài khoản cá nhân tên lạ tại quán trà sữa ở Quận 1 vì QR bị dán đè bằng sticker “thanh toán nhanh” của dịch vụ thứ ba.

Những hiểu lầm thường gặp

“Có thể hack chính mã QR.” QR chỉ là định dạng mã hoá dữ liệu, nên các tấn công “xuyên thủng” QR rất hiếm. Rủi ro thực tế là URL chứa trong QR là đường dẫn phishing hoặc malware, hoặc dán sticker đè lên QR hiện có để đổi đích — sửa đổi vật lý. Với QR ở nơi công cộng, kiểm tra bằng mắt xem có sticker dán đè không là bước cơ bản.

“URL ngắn trông sạch nên tốt hơn.” Đúng về mặt thị giác, nhưng người dùng không thể xác minh URL và nếu dịch vụ rút gọn bị dừng, bị bán lại hoặc bị hack, kết quả của mọi tài liệu đã in sẽ thay đổi. Tài liệu lưu càng lâu, URL dài trên miền của chính bạn càng an toàn.

“Sửa lỗi thì luôn chọn H.” Mức H thuận lợi cho việc chèn logo nhưng số module tăng, nên với kích thước in nhỏ, tỷ lệ nhận dạng lại giảm. Với diện tích nhỏ như danh thiếp, M thường là mặc định.

“Chỉ nhìn QR là biết nó dẫn đi đâu.” Camera mặc định của iOS 17/18 hiển thị banner URL, nhưng một số camera Android của OEM và ứng dụng quét bên thứ ba mở thẳng trình duyệt sau một cú chạm. Các cuộc tấn công phishing giả QR đăng nhập Wi-Fi công cộng nhắm vào kiểu mở tự động đó. Nên tắt mở tự động và tập thói quen kiểm tra miền trước khi tiếp tục sau khi quét.

“QR trong email là an toàn.” Từ 2023, “quishing” (phishing qua QR) bùng nổ trên email doanh nghiệp vì bộ lọc spam truyền thống không đọc được văn bản trong ảnh QR. Kẻ tấn công gửi email giả mạo bộ phận IT kèm QR “xác minh tài khoản Microsoft 365”; người dùng quét bằng điện thoại cá nhân (không có phần mềm bảo mật doanh nghiệp) và nhập thông tin đăng nhập. Proofpoint báo cáo năm 2024 có hơn 60% các tổ chức lớn bị nhắm mục tiêu bởi quishing ít nhất một lần trong năm.

Danh sách kiểm tra

  1. Tuổi thọ dự kiến là bao lâu?
    • Vài năm trở lên → Khuyến nghị QR tĩnh + URL miền riêng.
    • Chiến dịch ngắn hạn → QR động hoặc tham số UTM.
  2. Có bắt buộc phải theo dõi không?
    • Không → QR tĩnh là đủ.
    • Có → QR động từ nhà cung cấp đáng tin cậy. Cần kế hoạch chuyển hướng dự phòng.
  3. Kích thước in là bao nhiêu?
    • Rất nhỏ → Giảm lượng dữ liệu và đặt mức sửa lỗi ở M.
    • Trung bình – lớn → Nếu muốn chèn logo, chọn Q hoặc H.
  4. Có dán ở nơi công cộng không?
    • Có → Kiểm tra định kỳ xem có sticker dán đè không.
  5. URL đích có an toàn không?
    • Kiểm tra HTTPS, miền của chính bạn và tính hợp lệ hiện tại.
  6. Tạo QR ở đâu?
    • Nếu có thể, chọn tạo offline hoặc trong trình duyệt để URL không bị lưu log trên server bên ngoài.

Công cụ liên quan

Công cụ tạo mã QR của Patrache Studio tạo QR trong trình duyệt, nên URL bạn nhập không được truyền tới server bên ngoài. Nếu bạn dự định đăng ảnh có QR lên web, hãy điều chỉnh tiêu chí định dạng với Hướng dẫn nén ảnh toàn diện trước; nếu cần chèn QR vào tài liệu để gửi đi, kết hợp luồng ghép tài liệu từ Lợi ích bảo mật của việc hợp nhất và chia PDF trong trình duyệt sẽ giúp duy trì ranh giới quyền riêng tư nhất quán.

Tài liệu tham khảo