HTML 공유 전 3분: API 키·개인정보·내부 URL을 찾는 체크리스트
AI가 만든 HTML이나 리포트를 링크로 보내기 전에 소스, 숨은 데이터, 파일 경로에서 API 키와 개인정보를 찾고 노출 시 대응하는 순서를 정리합니다.
HTML을 링크로 만들기 전에는 화면만 훑지 말고 원문 소스 전체를 확인해야 합니다. 주석, 숨긴 요소, JavaScript 객체, 예시 요청 헤더에 들어간 API 키와 개인정보도 파일의 일부라면 그대로 게시됩니다. 비밀번호와 짧은 만료는 보조 장치이지, 공개하면 안 되는 값을 안전하게 바꾸지는 못합니다.
1. 자격 증명처럼 보이는 문자열부터 찾기
에디터의 전체 검색에서 다음 단어와 형태를 확인합니다.
api_key
apikey
secret
token
password
Authorization:
Bearer
BEGIN PRIVATE KEY
sk-
ghp_
AIza
이 목록은 완전한 탐지기가 아닙니다. 사용하는 서비스의 실제 키 접두사와 환경 변수 이름을 더해야 합니다. GitHub secret scanning 문서는 지원되는 secret pattern과 일반 password 탐지의 차이를 설명합니다. 자동 탐지를 통과했다고 해서 비밀값이 없다고 단정하지 마세요.
OpenAI API 키 안전 가이드처럼 브라우저에 전달되는 client-side 코드에는 API 키를 두지 않는 것이 기본입니다. 공개 데모가 실제 API를 호출해야 한다면 키를 HTML에 넣지 말고, 인증과 사용량 제한이 있는 backend를 별도로 설계합니다.
2. 화면에 안 보이는 HTML도 읽기
브라우저 화면에서 보이지 않아도 다음 위치는 공유됩니다.
<!-- comment -->안의 메모와 임시 데이터display:none,hidden, 접힌 dialog 안의 내용<script type="application/json">의 원본 데이터- JavaScript 변수, 오류 메시지, sample request와 response
data-*attribute, source map URL, analytics ID- image의
alt, link의href, form의 기본값
개발 중 남긴 “나중에 지울 것”은 공개 전 사본에서 실제로 지웁니다. CSS로 숨기는 것은 삭제가 아닙니다.
3. 사람과 조직을 식별하는 정보 확인하기
다음은 secret이 아니어도 공개 범위를 확인해야 합니다.
- 이름, 개인 이메일, 전화번호, 주소, 계정 ID
- 고객사명, 프로젝트명, 계약 금액, 내부 일정
- 직원·지원자·환자·사용자의 실제 데이터
- 사내 hostname, private IP, ticket URL, repository 경로
/Users/name/,C:\Users\name\같은 로컬 경로- URL query와 fragment에 남은 token이나 문서 ID
예시는 실제 데이터를 일부 가린 모양이 아니라 처음부터 합성 데이터로 바꾸는 편이
안전합니다. example.com, 문서용 IP 대역, 가상의 이름과 수치를 사용하고 실제 값과
섞이지 않았는지 다시 확인합니다.
4. 게시할 사본을 따로 만들기
원본에서 바로 지우기보다 공유용 사본을 만들고 다음 순서로 줄입니다.
- 민감한 section과 comment를 삭제합니다.
- 실제 데이터는 최소한의 합성 예시로 교체합니다.
- 동작에 필요 없는 script, network request, analytics를 제거합니다.
- 에디터 전체 검색을 다시 실행합니다.
- 파일을 텍스트로 열어 처음부터 끝까지 훑습니다.
- 공유 URL을 시크릿 창에서 열어 source와 network를 확인합니다.
팀에서 반복한다면 secret scanner를 CI나 pre-commit에 붙일 수 있습니다. 그래도 사람이 개인정보와 business context를 검토하는 단계는 남겨야 합니다.
5. 이미 올렸다면 삭제만 하고 끝내지 않기
노출 가능성이 있는 API 키나 token을 발견했다면 다음 순서로 대응합니다.
- 관리 링크에서 공유를 즉시 삭제합니다.
- 해당 provider에서 키를 폐기하거나 회전합니다.
- 접근·사용 로그와 예상치 못한 과금을 확인합니다.
- 안전한 사본을 새 URL로 다시 게시합니다.
- 기존 URL과 키를 전달받은 사람에게 교체 사실을 알립니다.
링크 삭제는 앞으로의 접근을 막는 조치입니다. 이미 본 사람이 저장한 사본이나 노출된 자격 증명을 되돌리지는 못합니다. OWASP Secrets Management 지침에 따라 회전과 폐기를 함께 수행합니다.
검사를 마친 사본만 HTML 공유 링크로 변환하세요. 접근 범위를 추가로 줄여야 한다면 비밀번호·만료·noindex의 차이 를 확인하되, 그 기능을 원문 정리의 대체재로 사용하지 마세요.