03 / 가이드
온라인 도구가 내 파일을 업로드하는지 확인하는 방법
무무료 방법론 가이드: 브라우저의 네트워크 패널과 카나리 문자열 테스트 파일로 온라인 도구가 내 파일을 업로드하는지 확인하는 방법, 캐시와 서비스 워커 주의 사항 포함. 이어서 같은 방법이 Toolars의 공개적이고 다시 실행 가능한 증거 하니스로, 매일 다시 캡처되는 영수증과 함께 작동하는 모습을 보여 줍니다.
왜 믿지 않고 검증하는가
처리 방식에 대한 주장은 검증할 수 있습니다. 어떤 도구든 '파일이 기기를 떠나지 않는다'고 말할 수 있습니다. 실제 작업 중 네트워크 트래픽을 관찰하고 반복할 수 있을 때 비로소 그 주장은 증거가 됩니다. 이 가이드는 한 가지 방법——도구가 작동하는 동안 브라우저가 무엇을 보내는지 지켜보는 것——을 가르치고, 같은 방법이 지속적인 공개 아티팩트로 작동하는 모습을 보여 Toolars에 대한 주장을 믿는 대신 확인할 수 있게 합니다.
- 약속과 증거라벨은 약속이고 캡처는 증거입니다. 차이는 캡처는 다시 재생하고, 검사하고, 반박할 수 있다는 것입니다.
- 하나의 방법, 모든 도구이 방법은 도구와 무관합니다. 브라우저 기본 네트워크 패널에서 약 1분이면 되며, 테스트하려는 사이트 어디에서나 작동합니다.
- 우리 자신에게 검증이 가이드는 다른 서비스를 지목하지 않고 다른 사이트의 동작에 대해 어떤 사실 주장도 하지 않습니다. 확인 방법을 가르치고, 이어서 Toolars가 자신에 대해 공개하는 증거로 시연합니다.
육십 초 DevTools 확인
모든 데스크톱 브라우저에는 페이지의 각 요청을 기록하는 네트워크 모니터가 있습니다. 올바른 순서로 사용하면 업로드 질문에 직접 답합니다. 내 파일을 싣고 이 기기를 떠난 요청이 있었는가?
패널이 기록하는 동안 작업을 마치고 결과를 다운로드합니다. 증거의 단위는 전체 세션입니다. 업로드는 요청 안에서만 일어날 수 있고, 요청은 완전한 로그에 숨을 수 없습니다.
- 먼저 열고 지우기도구 페이지와 네트워크 패널을 먼저 엽니다——개발자 도구, 네트워크 탭——로그를 지우고 기록을 계속합니다. 페이지 로딩에는 항상 HTML, 스크립트, 스타일 요청이 따릅니다. 이 껍데기 트래픽은 예상됩니다.
- 희생 파일로 실행이 목적으로 만든 테스트 파일로 작업을 실행합니다. 변환, 회전, 압축——무엇이든. 깨끗한 시작 로그는 보이는 요청이 모두 내 작업에 속한다는 뜻입니다.
- 동작 지켜보기도구의 동작을 누르고 목록을 지켜봅니다. 로컬 도구는 처음 사용할 때 코드, 글꼴, 엔진 애셋을 가져올 수 있습니다——그리고 워밍업 실행 이후에는 이상적으로 아무것도 없습니다.
로그 읽기: 껍데기 트래픽은 내 파일이 아니다
핵심 기술은 페이지 트래픽과 데이터 트래픽을 구분하는 것입니다. 껍데기 트래픽은 애플리케이션을 브라우저로 전달하고, 데이터 트래픽은 콘텐츠를 날입니다. 무엇을 찾아야 하는지 알고 나면 둘은 판에 다르게 보입니다.
- 껍데기 요청껍데기 요청은 작고 캐시 가능하며 소프트웨어처럼 이름이 붙습니다——스크립트, 스타일, 글꼴, 엔진 파일——사이트 자체 경로 아래에 있습니다. 이것들은 코드를 내 기기로 가져옵니다. 내 파일을 어디로 가져가지 않습니다.
- 업로드의 특징업로드는 대략 파일 크기의 본문을 가진 POST, PUT 또는 멀티파트 요청으로 보이며, 페이지의 출처와 다른 곳으로 보내집니다. 변환을 누르는 순간 그런 요청이 나가면 파일은 기기를 떠난 것입니다.
- 열어서 보기크기만으로는 어느 쪽도 증명하지 못합니다. 압축 청크, 재개 가능한 세션, WebSocket은 전송을 나눌 수 있습니다. 증거는 요청의 메서드, 목적지, 페이로드입니다. 열어서 확인하세요.
캐시와 서비스 워커는 보이는 것을 바꾼다
네트워크 로그는 이 브라우저 상태의 이번 실행을 측정합니다. 그리고 브라우저 상태는 캐시와 서비스 워커가 바꾸기 위해 존재합니다. 로그를 잘 읽는다는 것은 그 상태를 통제한다는 뜻입니다.
- 워밍업은 정상다시 방문하면 워밍업된 사이트는 껍데기를 디스크나 서비스 워커에서 제공하므로, 패널에는 처음보다 훨씬 적은 요청이 표시됩니다. 워밍업 이후 요청이 적은 것은 건강한 로컬 도구의 모습입니다——그 자체로는 아무것도 증명하지 않습니다.
- 깨끗하게 시작깨끗하게 읽으려면 새 브라우저 프로필이나 시크릿 창에서 시작하고, 패널의 캐시 비활성 옵션을 켜세요. 시크릿 모드가 모든 브라우저에서 서비스 워커를 차단하지는 않는다는 점을 기억하세요.
- 워커 차단가장 강력한 캡처는 각 실행을 캐시에서 아무것도 제공되지 않고 패널이 기록하기 전에 가로채지지 않도록, 서비스 워커를 차단한 새 브라우저 컨텍스트에서 시작합니다. 아래의 공개 하니스는 정확히 그 방식으로 기록합니다.
카나리 확인: 파일에 표시하고 찾기
트래픽을 지켜보는 것의 결정적 발전은 테스트 파일에 고유한 표시——카나리 문자열——을 넣고, 캡처된 요청에서 그 문자열을 찾는 것입니다. 바이트가 어떤 요청에도 나타나지 않으면 파일은 어디로 가지 않은 것입니다.
비전문가가 쓸 수 있는 가장 설득력 있는 기술입니다. 도구의 의도가 아니라 바이트 자체를 시험하기 때문입니다.
- 표시하기희생 파일을 만들고 직접 생성해 어디에도 공개한 적 없는 표시를 넣습니다. 텍스트 레이어, 이미지 주석, PDF 노트에 임의의 UUID를. 고유성이 일치의 의미를 만듭니다.
- 트래픽에서 검색작업 후 패널에 캡처된 요청——URL, 쿼리 문자열, 본문——에서 그 표시를 검색합니다. 일치하면 내 파일의 바이트가 기기를 떠난 것입니다. 전체 세션에서 일치하지 않으면 떠나지 않았다는 강력하고 직접적인 증거입니다.
- 반복하기카나리는 관찰한 세션만을 다룹니다. 그래서 한 번의 정교한 수동 확인보다 반복되는 정기 캡처가 더 중요합니다.
Toolars가 자신에 대해 공개하는 증거
Toolars는 같은 방법을 지속적인 공개 아티팩트로 운영합니다. 모든 도구에 대한 타입이 지정된 처리 선언, 캡처된 트래픽이 있는 Privacy proof 페이지, 결과만큼 명확하게 한계를 말하는 기계 판독 가능 영수증입니다.
- 공개된 호스트Privacy proof 페이지에는 사이트 껍데기가 도달할 수 있는 모든 외부 호스트, 응답과 함께 제공되는 보안 헤더, 그리고 같은 네트워크 패널에서 손으로 실행할 수 있는 자가 확인 단계가 나와 있습니다.
- 기계 판독 가능 영수증/privacy-proof/verification-receipt.json의 기계 판독 가능 확인 영수증에는 확인 명령, 측정된 시나리오 결과, 공개된 외부 호스트, 사이트의 X-Toolars-Release 응답 헤더와 비교할 릴리스 리비전이 공개되어 있습니다.
- 정직한 한계그 영수증은 증명하지 않는 것을 증명하는 것만큼 명확히 말합니다. 측정된 창은 그 실행을 다룹니다. 서비스가 앞으로 무엇이든 할 수 있는지에 대한 감사는 아닙니다.
공개 증거 하니스와 네 가지 시나리오
같은 확인이 오픈 리포지토리에서 실행 가능한 하니스로 포장되어 있어, 로컬 처리 주장을 Toolars에 아무것도 요청하지 않고 검증할 수 있습니다. 하니스는 라이브 사이트를 조작하고, 워커 요청을 포함한 모든 요청을 기록하며, 경계를 넘는 것이 있으면 크게 실패합니다.
하니스는 공개 리포지토리 https://github.com/aixtral/toolars-open의 evidence-harness/ 안에 있습니다. MIT 라이선스로 공개되어 있으며, 개인 스테이징 복사본이 아니라 주장의 실제 대상인 배포된 사이트를 검증합니다.
- 네 가지 시나리오하니스는 헤드리스 Chromium으로 라이브 사이트를 네 가지 시나리오로 조작합니다. 다운로드가 포함된 이미지 변환. 지연 로딩 디코더가 워밍업된 후 측정 실행이 요청 0건을 내야 하는 HEIC 변환. 언어 팩이 사이트 자체 출처에서 와야 하는 두 번째 언어가 포함된 OCR. 번들된 샘플에서의 PDF 회전.
- 세 가지 불변 조건모든 측정 창에서 세 가지 불변 조건을 주장합니다. 업로드 요청 0건, 카나리 유출 0건——입력 파일의 바이트에는 임의의 표시가 들어 있습니다——그리고 사이트가 스스로 공개한 자사 분석 프록시를 넘어선 예상 밖 크로스-출처 요청 0건입니다. 그 프록시는 무시되는 대신 셈에 넣고 이름을 밝힙니다.
- 매일 다시 캡처예약된 워크플로가 라이브 사이트에 대해 매일 영수증을 다시 캡처하고, 리포지토리의 프라이버시 증명 배지는 최신 영수증의 결과가 verified일 때만 초록입니다. 실패한 실행은 violation 또는 inconclusive로 읽히며, 결코 조용히 초록이 되지 않습니다.
증명을 직접 다시 실행하기
영수증의 가치는 재현성만큼입니다. 하니스는 누구든 라이브 출처에 대해 실행하고 결과를 한 줄씩 검사할 수 있는 파일로 쓰도록 만들어졌습니다.
각 시나리오는 서비스 워커를 차단한 새 브라우저 컨텍스트에서 시작되므로, 요청 0건 판독은 보이는 그대로의 의미를 갖습니다. 워밍업 이후 측정 실행은 네트워크를 전혀 건드리지 않았습니다.
- 복제하고 검증리포지토리를 복제하고, evidence-harness/로 들어가 의존성과 Playwright Chromium을 설치한 뒤, 라이브 사이트를 대상으로 verify 스크립트를 실행합니다.
- 종료 코드가 판정실행은 privacy-proof-receipt.json을 쓰고, 예상 밖의 것이 경계를 넘으면——본문이 있는 요청, URL의 카나리, 사이트 공개 목록에 없는 호스트——0이 아닌 코드로 끝납니다.
- 메타데이터만영수증에는 요청 메타데이터——메서드, 호스트, 경로, 리소스 유형, 본문 여부——만 기록되며, 파일 내용이나 요청·응답 본문은 결코 기록하지 않습니다.
이 방법이 증명할 수 없는 것
정직한 검증에는 자체 한계가 포함됩니다. 이를 알면 깨끗한 네트워크 트레스를 원래 보장이 아닌 것을 지나치게 읽는 일을 막을 수 있습니다.
- 하나의 창깨끗한 트레스는 관찰한 세션——그 실행, 그 브라우저, 그 파일——을 다룹니다. 제공자의 서버나 사람, 미래의 코드를 감사하지는 않습니다.
- 내 기기가 중요기기에서 무엇이 나가는지는 기기에도 달려 있습니다. 손상된 브라우저, 악의적인 확장, 공유 프로필은 어떤 도구의 구조와 무관하게 데이터를 옮길 수 있습니다.
- 지속적인 증거모든 프라이버시 주장——이 사이트의 주장도——다시 캡처되는 지속적인 증거로 다루고 평생 보장으로 다루지 마세요. 하니스가 좋은 캡처 한 번에 안주하지 않고 예약대로 다시 실행되는 것은 바로 그 때문입니다.
지속적인 증거를 확인하세요.
타입이 지정된 런타임 선언, 캡처된 트래픽, 공개된 호스트, 기계 판독 가능 영수증——라이브 사이트에 대해 매일 다시 캡처됩니다.