03 / HƯỚNG DẪN
Cách kiểm tra công cụ trực tuyến không tải tệp của bạn lên
Hướng dẫn phương pháp miễn phí: dùng bảng mạng của trình duyệt và tệp thử có chuỗi canary để kiểm tra công cụ trực tuyến có tải tệp của bạn lên không, kèm các lưu ý về cache và service worker. Sau đó xem cùng phương pháp đó vận hành như bộ harness bằng chứng công khai, có thể chạy lại của Toolars, với biên nhận được chụp lại mỗi ngày.
Vì sao xác minh thay vì tin tưởng
Khẳng định về cách xử lý có thể kiểm chứng được. Bất kỳ công cụ nào cũng có thể nói rằng tệp của bạn không bao giờ rồi khỏi thiết bị; khẳng định chỉ trở thành bằng chứng khi lưu lượng mạng trong một tác vụ thật có thể quan sát và lặp lại được. Hướng dẫn này dạy một phương pháp — quan sát trình duyệt đang gửi gì trong lúc công cụ làm việc — rồi cho thấy chính phương pháp đó vận hành như một hiện vật công khai thường trực, để các khẳng định về Toolars có thể được kiểm tra thay vì tin theo.
- Lợi hứa và bằng chứngNhãn là lợi hứa còn bản ghi là bằng chứng; khác biệt nằm ở chỗ bản ghi có thể phát lại, kiểm tra và bác bỏ.
- Một phương pháp, mọi công cụPhương pháp không phụ thuộc công cụ: nó chạy trong bảng mạng sẵn có của trình duyệt, mất khoảng một phút và dùng được trên bất kỳ trang web nào bạn muốn thử.
- Thử trên chính mìnhHướng dẫn này không nhắc tên dịch vụ nào khác và không khẳng định gì về hành vi của trang web nào khác; nó dạy cách kiểm tra, rồi minh họa trên chính bằng chứng mà Toolars công khai về mình.
Kiểm tra DevTools trong sáu mươi giây
Mọi trình duyệt máy tính đều có bộ giám sát mạng ghi lại từng yêu cầu của trang. Dùng đúng trình tự, nó trả lời trực tiếp câu hỏi tải lên: có yêu cầu nào rời khỏi thiết bị này mang theo tệp của tôi không?
Hoàn thành việc và tải kết quả xuống trong lúc bảng đang ghi. Đơn vị của bằng chứng là toàn bộ phiên: việc tải lên chỉ có thể nằm trong một yêu cầu, và một yêu cầu không thể trốn khỏi nhật ký đầy đủ.
- Mở và xóa trướcTrước tiên hãy mở trang của công cụ và bảng mạng — công cụ dành cho nhà phát triển, tab Network —, xóa nhật ký và để ghi tiếp. Tải trang luôn tạo ra các yêu cầu HTML, script và style; lưu lượng vỏ bọc đó là điều dự kiến.
- Dùng tệp có thể hy sinhChạy tác vụ với một tệp thử được tạo riêng cho việc này: chuyển đổi, xoay, nén. Nhật ký sạch ở đầu nghĩa là mỗi yêu cầu bạn thấy đều thuộc về tác vụ của bạn.
- Quan sát hành độngNhấn hành động của công cụ và quan sát danh sách. Một công cụ cục bộ có thể tải mã, phông chữ hoặc tài nguyên engine ở lần đầu — và sau một lượt làm nóng, lý tưởng là không còn gì.
Đọc nhật ký: lưu lượng vỏ bọc không phải tệp của bạn
Kỹ năng cần có là phân biệt lưu lượng của trang với lưu lượng dữ liệu. Lưu lượng vỏ bọc đưa ứng dụng vào trình duyệt của bạn; lưu lượng dữ liệu mang nội dung đi. Biết cần nhìn gì, hai loại trông khác hẳn nhau trong bảng.
- Yêu cầu vỏ bọcCác yêu cầu vỏ bọc nhỏ, có thể cache và mang tên như phần mềm — script, style, phông chữ và file engine dưới các đường dẫn của chính trang web. Chúng đưa mã vào thiết bị của bạn; chúng không mang tệp của bạn đi đâu.
- Dấu hiệu của việc tải lênViệc tải lên trông giống một yêu cầu POST, PUT hoặc multipart có phần thân xấp xỉ kích thước tệp của bạn, gửi tới một origin khác với origin của trang. Nếu một yêu cầu như vậy bắn ra khi bạn nhấn chuyển đổi, tệp đã rời khỏi thiết bị.
- Mở ra và xemKích thước đơn lẻ không chứng minh gì theo cả hai hướng: các khối nén, phiên có thể tiếp tục và WebSocket có thể chia nhỏ một lần truyền. Bằng chứng nằm ở phương thức, đích đến và nội dung của yêu cầu — hãy mở ra và xem.
Cache và service worker thay đổi những gì bạn thấy
Nhật ký mạng đo lần chạy này trong trạng thái trình duyệt này — và trạng thái đó chính là thứ mà cache và service worker tồn tại để thay đổi. Đọc nhật ký tốt nghĩa là kiểm soát trạng thái đó.
- Làm nóng là bình thườngỞ lượt truy cập lặp lại, trang web đã làm nóng phục vụ vỏ bọc từ đĩa hoặc service worker, và bảng hiển thị ít yêu cầu hơn hẳn so với lần đầu. Ít yêu cầu hơn sau khi làm nóng là dáng vẻ bình thường của một công cụ cục bộ — bản thân nó không chứng minh điều gì.
- Bắt đầu từ sạchĐể đọc sạch, hãy bắt đầu từ một hồ sơ trình duyệt mới hoặc cửa sổ riêng tư, bật tùy chọn vô hiệu hóa cache của bảng, và nhớ rằng chế độ riêng tư không chặn service worker trên mọi trình duyệt.
- Chặn workerCác bản ghi mạnh nhất bắt đầu mỗi lượt chạy trong một ngữ cảnh trình duyệt mới với service worker bị chặn, để không có gì được phục vụ từ cache và không có gì bị chặn trước khi bảng ghi lại. Bộ harness công khai bên dưới ghi chính theo cách đó.
Kiểm tra canary: đánh dấu tệp rồi tìm
Bước nâng cấp quyết định so với chỉ quan sát lưu lượng: gắn cho tệp thử một dấu duy nhất — chuỗi canary — rồi tìm chuỗi chính xác đó trong các yêu cầu đã ghi. Nếu các byte không xuất hiện trong yêu cầu nào, tệp không đi đâu cả.
Đây là kỹ thuật thuyết phục nhất dành cho người không chuyên, vì nó thử thách chính các byte thay vì ý định của công cụ.
- Đánh dấu tệpTạo một tệp có thể hy sinh và gắn một dấu bạn tự tạo và chưa từng công khai: một UUID ngẫu nhiên trong lớp chữ, bình luận ảnh, ghi chú PDF. Tính duy nhất là thứ làm nên ý nghĩa của một kết quả trùng khớp.
- Tìm trong lưu lượngSau tác vụ, hãy tìm dấu đó trong các yêu cầu đã ghi của bảng — URL, chuỗi truy vấn và phần thân. Trùng khớp nghĩa là các byte của tệp đã rời khỏi thiết bị; không trùng trong suốt phiên là bằng chứng trực tiếp và mạnh rằng chúng không rời đi.
- Lặp lạiCanary chỉ bao phủ phiên được quan sát — đó là lý do các bản ghi định kỳ, lặp lại quan trọng hơn một lần kiểm tra thủ công kỹ lưỡng.
Bằng chứng Toolars công khai về chính mình
Toolars vận hành cùng phương pháp như một hiện vật công khai thường trực: tuyên bố xử lý có kiểu dữ liệu cho từng công cụ, trang Privacy proof với lưu lượng đã ghi, và một biên nhận đọc được bằng máy nói rõ giới hạn của nó rõ ràng ngang kết quả.
- Host được tiết lộTrang Privacy proof liệt kê mọi host bên ngoài mà vỏ bọc của trang web có thể chạm tới, các header bảo mật được phục vụ cùng phản hồi, và các bước tự kiểm tra mà bạn có thể chạy bằng tay trong chính bảng mạng đó.
- Biên nhận đọc được bằng máyBiên nhận xác minh đọc được bằng máy tại /privacy-proof/verification-receipt.json công khai các lệnh xác minh, kết quả kịch bản đã đo, các host bên ngoài được tiết lộ, và phiên bản phát hành để đối chiếu với header phản hồi X-Toolars-Release của trang web.
- Giới hạn trung thựcBiên nhận nói rõ điều nó không chứng minh cũng rõ ràng như điều nó chứng minh: cửa sổ được đo bao phủ lần chạy đó, không phải cuộc kiểm toán mọi thứ dịch vụ có thể làm trong tương lai.
Bộ harness bằng chứng công khai và bốn kịch bản của nó
Các phép kiểm tra tương tự được đóng gói thành harness có thể chạy trong kho mở, để khẳng định xử lý cục bộ có thể được xác minh mà không phải hỏi Toolars bất cứ điều gì. Nó điều khiển trang web trực tiếp, ghi lại từng yêu cầu kể cả của worker, và thất bại ầm ĩ khi một ranh giới bị vượt qua.
Harness nằm trong kho công khai https://github.com/aixtral/toolars-open, trong thư mục evidence-harness/. Nó được phát hành theo giấy phép MIT và kiểm tra trang web đã triển khai — chính thứ mà khẳng định nói đến — chứ không phải bản staging riêng.
- Bốn kịch bảnHarness điều khiển trang web trực tiếp trong Chromium headless qua bốn kịch bản: chuyển đổi ảnh kèm tải xuống; chuyển đổi HEIC mà lượt đo của nó sau khi bộ giải mã làm nóng phải không phát ra yêu cầu nào; tác vụ OCR với gói ngôn ngữ thứ hai phải đến từ chính origin của trang web; và xoay PDF trên mẫu đi kèm.
- Ba bất biếnTrong mỗi cửa sổ đo, nó khẳng định ba bất biến: số yêu cầu tải lên bằng không, số rò rỉ canary bằng không — các byte của tệp đầu vào mang một dấu ngẫu nhiên — và số yêu cầu cross-origin ngoài dự kiến bằng không ngoài proxy phân tích first-party đã được trang web tiết lộ, vốn được đếm và gọi tên thay vì bị bỏ qua.
- Chụp lại hằng ngàyMột quy trình theo lịch chụp lại biên nhận đối với trang web trực tiếp mỗi ngày, và huy hiệu privacy-proof của kho chỉ xanh khi kết quả của biên nhận mới nhất là verified; một lượt chạy thất bại đọc là violation hoặc inconclusive, không bao giờ xanh trong im lặng.
Tự chạy lại phép chứng minh
Một biên nhận chỉ đáng giá bằng khả năng tái tạo của nó. Harness được xây để bất kỳ ai cũng chạy được, với origin trực tiếp, kết quả ghi ra một tệp có thể kiểm tra từng dòng.
Vì mỗi kịch bản bắt đầu trong một ngữ cảnh trình duyệt mới với service worker bị chặn, phép đo số yêu cầu bằng không có nghĩa đúng như vẻ ngoài: sau khi làm nóng, lượt chạy được đo hoàn toàn không chạm vào mạng.
- Clone và xác minhClone kho, vào evidence-harness/, cài các phụ thuộc và một Chromium của Playwright, rồi chạy script xác minh với trang web trực tiếp làm origin đích.
- Mã thoát là phán quyếtLượt chạy ghi privacy-proof-receipt.json và kết thúc với mã khác không nếu điều gì đó ngoài dự kiến vượt qua ranh giới — một yêu cầu có phần thân, một canary trong URL, hoặc một host không nằm trong danh sách đã công bố của trang web.
- Chỉ siêu dữ liệuBiên nhận chỉ ghi siêu dữ liệu yêu cầu — phương thức, host, đường dẫn, loại tài nguyên, có phần thân hay không — chứ không bao giờ ghi nội dung tệp, phần thân yêu cầu hay phần thân phản hồi.
Điều phương pháp này không chứng minh được
Xác minh trung thực bao gồm cả ranh giới của chính nó. Biết chúng giúp bạn không đọc một dấu vết mạng sạch thành một bảo đảm mà nó chưa từng là.
- Một cửa sổMột dấu vết sạch bao phủ phiên được quan sát — lần chạy đó, trình duyệt đó, tệp đó. Nó không kiểm toán máy chủ của nhà cung cấp, con người họ, hay mã của họ trong tương lai.
- Thiết bị của bạn quan trọngĐiều gì rời khỏi thiết bị của bạn cũng phụ thuộc vào chính thiết bị đó: một trình duyệt bị xâm phạm, một tiện ích mở rộng độc hại hoặc một hồ sơ dùng chung có thể di chuyển dữ liệu độc lập với kiến trúc của bất kỳ công cụ nào.
- Bằng chứng thường trựcHãy coi mọi khẳng định về riêng tư — kể cả khẳng định của chính trang web này — là bằng chứng thường trực cần được chụp lại, chứ không phải bảo đảm trọn đời. Đó chính xác là lý do harness chạy lại theo lịch thay vì dựa vào một bản ghi đẹp.
Xem bằng chứng thường trực.
Tuyên bố runtime có kiểu dữ liệu, lưu lượng đã ghi, các host được tiết lộ và biên nhận đọc được bằng máy — được chụp lại đối với trang web trực tiếp mỗi ngày.