// 문서

문서

스캔이 어떻게 작동하는지, 소유한 사이트에서 심층 스캔을 사용하는 방법, 그리고 서비스를 무료로 유지하기 위한 한도를 안내합니다.

스캔 작동 방식

공개된 URL을 입력하면 Watchpost는 공격자가 보는 것과 동일한 외부 관점에서 사이트를 살펴봅니다. 일반 스캔은 수동적이며 읽기 전용입니다. 홈페이지와 JavaScript를 불러오고, TLS 핸드셰이크를 수행하며, DNS 조회를 실행하고, /.env 또는 /.git/config와 같이 잘 알려진 소수의 경로를 요청합니다.

양식을 제출하거나 로그인을 시도하거나 익스플로잇 페이로드를 전송하는 일은 절대 없습니다. 대부분의 스캔은 1분 이내에 완료됩니다. 동일한 호스트에 대한 결과는 24시간 동안 재사용되므로, 반복 스캔이 서버에 다시 요청을 보내지 않습니다.

수행하는 모든 검사 항목은 검사 목록에서 확인할 수 있습니다.

수동 스캔과 심층 스캔

  • 수동 스캔: 누구나 모든 공개 사이트를 대상으로 실행할 수 있습니다. 이미 공개된 정보만 읽습니다.
  • 심층 스캔: 로그인한 상태에서 도메인 소유권을 인증한 소유자만 사용할 수 있습니다. 심층 검사는 설정을 능동적으로 테스트합니다. 예를 들어 사이트에 포함된 공개 키로 Supabase 테이블이나 Firebase 데이터베이스를 읽을 수 있는지 확인합니다.

심층 검사는 개수와 이름만 기록하며(예: "테이블 profiles: 1,204개 행 읽기 가능"), 데이터 자체는 절대 저장하지 않습니다. 심층 스캔 보고서는 사이트 소유자에게만 표시됩니다.

도메인 인증

대시보드에서 사이트를 추가하면 토큰이 발급됩니다. 아래 방법 중 하나로 토큰을 게시한 후 인증을 누르십시오.

  1. 해당 호스트의 DNS TXT 레코드: watchpost-verify=<token>
  2. 토큰을 담은 파일을 https://your-domain/.well-known/watchpost-verify.txt에 게시
  3. 홈페이지 <head>의 메타 태그: <meta name="watchpost-verify" content="<token>">

인증 후 30일이 지나면 심층 스캔 전에 소유권을 다시 확인합니다. 토큰이 삭제된 경우 다시 인증할 때까지 심층 스캔이 잠깁니다.

사용 한도

  • 익명 스캔: IP 주소당 분당 5회, 일일 50회.
  • 동일한 호스트에 대한 결과는 24시간 동안 캐시됩니다.
  • 소유한 사이트: 5분마다 수동 재스캔 1회, 시간당 심층 스캔 1회.
  • 계정당 최대 20개 사이트.

점수와 등급

모든 스캔은 100점에서 시작합니다. 각 발견 항목은 심각도에 따라 점수가 차감됩니다: 치명적 40점, 높음 15점, 중간 5점, 낮음 1점. 점수는 등급으로 환산됩니다: A 90점 이상, B 75점 이상, C 60점 이상, D 40점 이상, F 40점 미만. 치명적 발견 항목이 하나라도 있으면 등급은 최대 D로 제한됩니다.

좋은 등급은 검사 범위 내에서 문제가 발견되지 않았다는 의미입니다. 이는 모의 해킹이 아니며, 사이트의 안전을 보장하지 않습니다.

보고서 열람 권한

익명 스캔 보고서는 비공개 목록으로 관리됩니다. 링크가 있는 사람은 누구나 열람할 수 있지만 검색 엔진에는 노출되지 않습니다. 계정에 등록된 사이트의 보고서는 수동 스캔이든 심층 스캔이든 본인에게만 표시됩니다.

공개 API

웹사이트에서 사용하는 엔드포인트가 그대로 공개되어 있으며, 위의 한도가 적용됩니다.

  • POST /api/v1/scans에 {"url": "https://example.com"}을 보내면 {"id": "…"}를 반환합니다
  • GET /api/v1/scans/<id>는 상태, 등급 및 발견 항목을 반환합니다
  • GET /api/v1/checks는 검사 목록을 반환합니다

연동 시 식별 가능한 User-Agent를 사용해 주십시오.