반듯 ← 사진 만들기로

PROOF

사진을 올리지 않는다는 걸 확인하는 법

말로만 약속하지 않고, 누구나 직접 해 볼 수 있게 적었어요.

반듯 사이트에는 서버 코드가 없어요. Cloudflare가 화면 파일(HTML·JS·CSS)과 얼굴 찾기·배경 나누기 모델 파일을 내려주기만 해요. 사진을 받을 주소 자체가 없어요.

01 비행기 모드로 해 보기 — 가장 쉬워요

  1. 반듯에서 사진을 한 장 끝까지 만들어요(처음 한 번은 화면 파일과 모델을 이 사이트에서 받아요).
  2. 휴대폰을 비행기 모드로 바꾸거나 와이파이를 꺼요.
  3. 반듯을 다시 열고 다른 사진으로 만들어 봐요. 얼굴 찾기·검사·저장·인화지가 그대로 돼요.

인터넷이 끊긴 상태에서도 되니까, 사진을 어딘가로 보내야 하는 구조가 아니라는 뜻이에요. (배경 바꾸기를 처음 쓸 때는 모델을 한 번 받아야 해서 인터넷이 필요해요.)

02 개발자 도구 네트워크 탭 보기 — PC

  1. PC 브라우저에서 반듯을 열고 개발자 도구(F12, Mac은 ⌥⌘I)의 Network(네트워크) 탭을 열어요.
  2. 사진을 골라 저장까지 해 봐요.
  3. 요청 목록을 보면 모두 bandeut.pages.dev의 파일을 받는(GET) 요청이에요. 사진을 실어 보내는 요청(POST·PUT)이나 다른 사이트로 가는 요청이 없어요.

반듯을 만들 때도 헤드리스 Chrome으로 사진 한 장을 처음부터 저장까지 만들면서 모든 요청을 기록해, 같은 사이트의 GET 요청만 있는지 검사해요.

03 보안 헤더(CSP) 보기

네트워크 탭에서 첫 문서 요청을 눌러 응답 헤더의 Content-Security-Policy를 보면 이렇게 적혀 있어요.

connect-src 'self' blob:
script-src 'self' 'wasm-unsafe-eval'
form-action 'none'

그리고 이 사이트(같은 출처)에는 받는 코드가 없어요. 그래서 사진이 나갈 길이 없어요.

Cloudflare는 기본으로 접속 오류 보고(NEL — 접속 오류가 나면 브라우저가 Cloudflare로 오류 정보를 따로 보내는 기능, 네트워크 탭에는 보이지 않아요)를 켜는 헤더를 붙여요. 반듯은 이를 끄는 헤더를 보내서 꺼 두었어요. 같은 응답 헤더에서 nel: {"max_age":0}을 볼 수 있어요.

그 밖에