Văn bản & công cụ hàng ngày · Bộ công cụ QR & Barcode
Điều gì xảy ra khi bạn tạo mã QR trong trình duyệt của mình chứ không phải trên máy chủ
· Cách thức hoạt động
qr-code quyền riêng tư browser-processing
So sánh trình tạo QR do máy chủ kết xuất với trình tạo QR chạy dưới dạng JavaScript trong tab, hiển thị chính xác dữ liệu nào được rời khỏi thiết bị của bạn trong từng trường hợp và cách tự xác minh dữ liệu đó.
Thế hệ cục bộ và từ xa là những kiến trúc khác nhau; kho lưu trữ này chỉ chứng minh đường dẫn cục bộ của ToolAcre
Hai trang có thể hiển thị cùng một hình ảnh QR trong khi sử dụng các đường dẫn dữ liệu khác nhau. Nguồn của ToolAcre chứng minh rằng trình tạo của nó chuyển văn bản tới phía trình duyệt JavaScript, nhận ma trận trong bộ nhớ và hiển thị cục bộ; nó không chứng minh cách thức hoạt động của một dịch vụ không liên quan.
Sự khác biệt có thể được nhìn thấy ở ranh giới chức năng. `buildPayload` trả về một chuỗi cùng với các ghi chú và cảnh báo; `generateQrMatrix` tiêu thụ chuỗi đó; `renderQrSvg` hoặc `drawQrToCanvas` sử dụng ma trận boolean. Không chấp nhận phản hồi của máy chủ hoặc hình ảnh từ xa URL. Một trang web khác có thể sử dụng kiến trúc dựa trên yêu cầu, nhưng việc chẩn đoán nó đòi hỏi phải quan sát trang web đó thay vì coi “trình tạo trực tuyến” là một triển khai thống nhất.
Trình tạo từ xa có thể nhận được văn bản tải trọng, nhưng hành vi ghi nhật ký của dịch vụ khác yêu cầu bằng chứng riêng
Kiến trúc do máy chủ kết xuất nhất thiết phải gửi đủ thông tin cho một quy trình từ xa để tạo hình ảnh, nhưng việc lưu giữ nhật ký, bộ nhớ đệm và phân tích sẽ khác nhau tùy theo dịch vụ. Hãy coi những hành vi đó như những câu hỏi dành cho nhà cung cấp đó thay vì đưa ra các giả định như những sự thật đã được quan sát.
Điểm cuối từ xa sẽ cần tải trọng hoặc biểu diễn tương đương trước khi có thể tạo ra các mô-đun dành riêng cho tải trọng. Điều gì xảy ra sau khi nhận vẫn chưa được xác định mà không có bằng chứng: một dịch vụ có thể loại bỏ yêu cầu, dịch vụ khác có thể giữ lại nhật ký ứng dụng và dịch vụ thứ ba có thể đưa dữ liệu vào báo cáo lỗi. Do đó, bài viết này hướng dẫn kiểm tra luồng dữ liệu chứ không phải cáo buộc rằng mọi trình tạo máy chủ đều lưu trữ văn bản đã gửi.
Đường dẫn phía trình duyệt — văn bản được mã hóa thành dòng bit, thêm tính năng sửa lỗi và vẽ lưới, tất cả đều bên trong trang
Trong ToolAcre, TextEncoding tạo UTF-8 byte, qrcode-generator xây dựng ma trận và SVG cục bộ hoặc mã canvas vẽ các mô-đun. Các hàm đó chấp nhận các giá trị đã được giữ trong trang và không chứa lệnh gọi tìm nạp mang tải trọng.
Kết xuất cục bộ cũng duy trì quá trình xây dựng xuất khẩu trong cùng một quy trình. SVG được tập hợp dưới dạng đánh dấu thoát với các đường chạy ngang được hợp nhất; PNG được vẽ vào canvas có các hình chữ nhật mô-đun số nguyên và được tải xuống dưới dạng blob do trình duyệt tạo. Đầu ra không nhận được phản hồi HTTP. Cơ chế đó là bằng chứng mạnh mẽ hơn biểu tượng khóa, cơ chế này bảo vệ kết nối nhưng không nói gì về hoạt động của máy chủ nhận.
Cách tự kiểm tra - mở bảng mạng của trình duyệt, tạo mã và xem các yêu cầu không bao giờ xuất hiện
Mở các công cụ dành cho nhà phát triển trước khi nhập chuỗi thử nghiệm đặc biệt, xóa danh sách yêu cầu, tạo mã và tìm kiếm URL cũng như nội dung yêu cầu cho chuỗi đó. Điều này xác minh tuyên bố hẹp rằng thế hệ không truyền tải trọng trong phiên được quan sát của bạn.
Sử dụng cả danh sách yêu cầu và bằng chứng nguồn. Xóa bảng điều khiển sau khi trang được tải, tạo từ một điểm đánh dấu vô hại duy nhất và kiểm tra các yêu cầu mới cho điểm đánh dấu trong URL, tải trọng và dữ liệu biểu mẫu. Sau đó, hãy xác nhận rằng đường dẫn tạo không có lệnh gọi tìm nạp hoặc XHR. Chỉ kiểm tra thì yếu hơn: quan sát thời gian chạy là một phiên, trong khi kiểm tra tĩnh có thể bỏ lỡ hành vi triển khai được đưa vào.
Tài nguyên trang của bên thứ ba và việc truyền tải trọng là những câu hỏi riêng biệt không được gộp lại
Một trang vẫn có thể yêu cầu tập lệnh, phông chữ, quảng cáo hoặc phân tích mà không gửi văn bản được mã hóa. Ngược lại, danh sách trống không phải là bằng chứng về lượt tải trang trước, tiện ích mở rộng của trình duyệt hoặc những thay đổi triển khai trong tương lai, vì vậy hãy đưa ra kết luận một cách cẩn thận.
Bảng công cụ tập trung của kho lưu trữ cho biết trình tạo không đưa ra yêu cầu mạng nào, trong khi hợp đồng xuất bản rộng hơn cảnh báo rằng một trang sản xuất có thể tải tài nguyên trang web được quản lý bằng sự đồng ý. Cả hai đều có thể đúng vì việc xử lý tải trọng và phân phối trang là các luồng riêng biệt. Báo cáo chính xác những gì đã được tìm kiếm và khi nào. “Điểm đánh dấu không có trong các yêu cầu tạo” có thể tái tạo được; “Trang này không có nơi nào để rò rỉ” rộng hơn bằng chứng.
Ví dụ đã hoạt động: lọc nhật ký mạng cho tải trọng thử nghiệm thay vì mong đợi một trang hoàn toàn im lặng
Sử dụng một ví dụ có hình mạng nội bộ vô hại, chẳng hạn như https://intranet.invalid/menu-check-47, sau đó lọc nhật ký mạng để kiểm tra menu-47. Bằng chứng dự kiến không phải là yêu cầu chịu tải, không phải là lời hứa rằng mọi tài nguyên trang sẽ biến mất.
Ví dụ: nhập `https://intranet.invalid/menu-check-47`, tạo rồi tìm kiếm chi tiết yêu cầu đã nắm bắt cho `menu-check-47`. Đồng thời kiểm tra bản xem trước tải trọng để xác minh rằng trình tạo không lặng lẽ thay thế một địa chỉ khác. Một kết quả rõ ràng cho thấy rằng cùng một giá trị đặc biệt được chuyển từ dạng này sang ma trận cục bộ trong bước tạo được quan sát đó. Nó không chứng nhận các tiện ích mở rộng của trình duyệt, các yêu cầu trước đó hoặc bản dựng triển khai trong tương lai.
Điều này không bao gồm: chia sẻ hình ảnh sau này, tài nguyên triển khai hoặc các công cụ nối mạng không liên quan
Thế hệ cục bộ không kiểm soát nơi hình ảnh đã xuất được tải lên, cách máy chủ đích ghi nhật ký lượt truy cập hoặc những công cụ truyền thông ToolAcre không liên quan nào có thể tìm nạp theo thiết kế. Nó cũng không đảm bảo an toàn bí mật sau khi ai đó quét mã được in.
Hình ảnh cuối cùng là một bản sao di động của dữ liệu. Tải nó lên hệ thống tài liệu, gửi email hoặc in nó có thể tiết lộ tải trọng cho những người mới mặc dù việc tạo ra là cục bộ. URL được giải mã cũng liên hệ với đích khi được quét. Quá trình xử lý cục bộ sẽ loại bỏ một bộ xử lý khỏi quá trình tạo; nó không biến mã QR chứa mật khẩu hoặc địa chỉ nội bộ thành bộ nhớ được mã hóa.
Bài học rút ra — Bộ công cụ QR & Mã vạch thực hiện toàn bộ công việc trong tab của bạn, bạn có thể xác minh công việc này trong vòng chưa đầy một phút
Thuộc tính quyền riêng tư hữu ích là chính xác: mã hóa và hiển thị QR hoạt động cục bộ trong quá trình triển khai được kiểm tra. Xác minh thuộc tính đó dựa trên trang được triển khai khi tải trọng nhạy cảm và ưu tiên phần mềm ngoại tuyến để có thông tin xác thực có mô hình mối đe dọa nghiêm ngặt.
Đối với các liên kết thông thường, việc tạo cục bộ cung cấp một lộ trình đơn giản và có thể kiểm tra được. Đối với thông tin xác thực hoặc dữ liệu được quản lý, hãy xem xét liệu hình ảnh QR có tồn tại hay không và sử dụng công cụ ngoại tuyến nếu tài nguyên trang nằm ngoài mô hình mối đe dọa. Tuyên bố về quyền riêng tư phải tuân theo toàn bộ vòng đời—mục nhập, tạo, tải xuống, chia sẻ, quét và đích—không dừng lại sau khi xác nhận rằng bản thân bộ mã hóa thiếu lệnh gọi mạng.