이 창구는 배포된 웹앱을 동의 기반으로 점검합니다. 아래는 요청부터 영수증까지 전 과정을 단계별로 설명합니다.
MANUAL · 목차
점검할 웹앱의 도메인과 결과를 받을 이메일을 입력하고 «점검 요청»을 누릅니다. 그 요청에만 묶인 고유 토큰이 발급됩니다. 이 시점에는 아직 아무것도 스캔하지 않습니다.
발급된 토큰을 도메인에 두어 소유를 증명합니다. 두 방법 중 하나면 됩니다. 그 자리에 토큰을 둘 수 있다는 것 자체가 증명입니다.
화면의 «복사» 버튼으로 토큰을 복사합니다.
도메인 루트에 /.well-known/star365-audit-consent.txt 파일을 만들고, 파일 내용에 토큰만 넣습니다.
브라우저에서 그 URL 을 열었을 때 토큰이 그대로 보이면 준비 완료입니다.
화면의 DNS 탭에서 «복사» 버튼으로 레코드 한 줄을 복사합니다.
도메인 DNS 설정에 TXT 레코드로 추가합니다: 이름 star365-audit-consent, 값은 토큰.
DNS 전파에는 수 분~수십 분이 걸릴 수 있습니다. 반영 후 확인하세요.
파일 경로를 만들 수 없는 정적 호스팅이거나, 없는 주소에도 200 을 주는(soft-404) 사이트라면 이 방법을 쓰세요. 화면의 meta 탭에서 태그를 복사해 홈페이지 HTML 의 <head> 안에 넣습니다.
태그는 서버가 내려주는 HTML 에 있어야 합니다 — JS 로 나중에 넣은 태그는 우리가 보지 못합니다. 또 <head> 밖(본문)에 있는 태그는 인정하지 않습니다: 게시물이 그대로 그려지는 사이트에서 남이 태그를 심어 동의를 위조할 수 있기 때문입니다.
contact=you@example.com: 도메인 밖 주소(gmail 등)로 영수증 메일을 받으려면 필요합니다(신청 때 이메일을 적으면 발급 내용에 미리 들어갑니다). badge=on: 점검 배지를 공개합니다(기본은 꺼짐).«동의 확인하기»를 누르면 서버가 토큰 위치를 읽어 검증합니다. verified 가 되면 그 도메인만 허용 목록에 올라 자동 점검 대기열에 들어갑니다. 외부 점검은 읽기 전용 GET 요청만 씁니다 — 주입·무차별·과부하 없음. 단 하나의 예외가 있습니다: 점검 대상 번들에 Supabase 프로젝트 주소(*.supabase.co)와 anon 키가 실려 있으면, 그 프로젝트 호스트 한 곳에 읽기 전용 GET 으로 RLS 가 켜져 있는지 시험합니다. 번들이 이미 부르는 테이블 이름만, 테이블당 1건씩이며, 행의 값은 읽지도 저장하지도 않습니다.
점검이 끝나면 영수증을 이메일로 받습니다. 각 항목의 판정은 세 값 중 하나이며(실패는 심각도를 함께 표시), 변조 방지 해시 체인으로 남습니다:
밖에서 GET 으로 관측 가능한 20항목: 도달 여부 · 브라우저 번들에 실린 시크릿 · 열린 민감 경로(.env·.git 등 27종) · 보안 헤더. 그리고 실제 브라우저로 열어야만 보이는 것 — JS 콘솔 오류, 4xx·5xx 로 깨진 자기 자원, HTTPS 페이지가 부르는 http:// 자원(mixed content), 빈 화면으로 배포됐는지, 390px 모바일에서 가로로 넘치는지, 죽은 내부 링크. 브라우저는 GET 만 내보냅니다 — 페이지가 POST 를 쏘더라도 우리를 통해서는 나가지 않습니다. 밖에서 못 보는 것은 «확인 불가»로 남깁니다. Supabase 를 쓰는 앱이면 RLS 도 시험합니다(번들에 anon 키가 있을 때).
명시적 요청과 접근 권한이 있을 때만: 파일 권한, DB 노출·방화벽, 프로세스 실행 권한, 의존성 취약점까지. 발견된 비밀값은 지문만 남기고 원본은 저장하지 않습니다.
동의를 증명한 도메인만 점검합니다. 결과는 귀하에게만 전달하고 어디에도 게시하지 않습니다. 자금·결제 수단은 받지 않으며, 후원은 지갑으로 직접 이뤄집니다.
점검이 끝나면 사이트에 «star365 점검» 배지를 달 수 있습니다. 배지는 귀하가 켰을 때만 나옵니다 — 동의 파일(또는 TXT 레코드)에 토큰과 함께 badge=on 한 줄을 적어 두세요. 켜지 않으면 배지 주소는 404 이고, 점검을 받았다는 사실조차 드러나지 않습니다. 실제 영수증이 있는 도메인만 배지가 나오며(위조 불가), 실패 건수는 공개로 노출하지 않습니다. 아래 코드의 도메인만 귀하 것으로 바꾸세요:
<a href="https://audit.star365.site/?ref=badge"><img src="https://audit.star365.site/badge/YOUR-DOMAIN.svg" alt="Security audited by star365"></a>최초 한 번만 사람이 합니다: 아래 명령이 동의 파일 내용과 영수증 키를 출력합니다. 파일 내용(맨 끝 standing=on 줄 포함)을 사이트에 올리고, 출력된 NONCE·RECEIPT_KEY 를 CI 비밀로 저장하세요.
curl -fsSLO https://audit.star365.site/ci/star365-audit.sh && bash star365-audit.sh request YOUR-DOMAIN you@example.com그다음은 배포 파이프라인에 한 단계를 더합니다(GitHub Actions 예시 — action.yml 과 star365-audit.sh 를 저장소에 함께 둡니다. 다른 CI 에서는 bash star365-audit.sh rescan):
- uses: ./.github/actions/star365-audit # action.yml + star365-audit.sh
with:
nonce: ${{ secrets.STAR365_NONCE }}
receipt-key: ${{ secrets.STAR365_RECEIPT_KEY }}
fail-on: crit종료코드: 0 통과 · 1 실패(기본은 «위험» 등급만 실패로 봄, fail-on: warn 이면 «주의»도) · 2 판정 불가(대기 시간 초과·동의 없음). 같은 도메인은 1시간에 한 번만 점검합니다. 반복 점검을 멈추려면 동의 파일에서 standing=on 줄을 지우세요 — 다음 요청부터 거절됩니다.
파일 URL 이 정확한지(오타·대소문자), 내용에 토큰만 있는지 확인하세요. DNS 방법이면 전파가 끝났는지 기다린 뒤 다시 «동의 확인하기»를 누릅니다.
아니요. 우리가 그 항목을 읽지 못했다는 뜻이며, 통과로 감추지 않고 그대로 알려드리는 것입니다. 필요하면 소스 위치나 SSH 내부 점검으로 확인할 수 있습니다.
동의가 verified 되면 자동 대기열에 올라 곧 실행되고, 끝나면 이메일로 영수증을 보냅니다.
외부 점검은 무료입니다. SSH 내부 점검·정기 감시는 범위에 따라 상담 후 진행합니다. 도움이 됐다면 자발적 후원(비수탁)이 가능합니다.
← 홈으로 / 점검 요청