01DEFINITION
한 줄로 말하면
링크로 연결하지 않았을 뿐 파일은 그 자리에 있습니다. 백업 파일, 설정 파일, 개발 중 올려 둔 압축본은 주소를 그대로 입력하면 열립니다. 공개하지 않았다는 것과 접근을 막았다는 것은 다른 말이고, 침해 사고의 상당수가 이 차이에서 시작합니다.
02RISK
없으면 무슨 일이 생기나
가장 흔한 것은 배포 직전에 만든 백업입니다. 폴더째 압축해 웹 루트에 두고 작업한 뒤 지우는 것을 잊습니다. 자동화 도구는 site.zip · backup.tar.gz · www_20260101.zip 처럼 흔한 이름 수백 개를 그대로 넣어 보고, 하나라도 200 이 돌아오면 사이트 전체를 통째로 내려받습니다. 이때 넘어가는 것은 소스만이 아니라 데이터베이스 접속 정보가 든 설정 파일입니다.
두 번째는 편집기와 버전 관리가 남기는 흔적입니다. config.php.bak · .env · .git/ 같은 것들인데, 이 중 .git 이 통째로 열려 있으면 커밋 기록까지 복원됩니다. 과거에 실수로 커밋했다가 지운 비밀번호도 기록에는 남아 있어서, 지금 코드가 깨끗해도 소용이 없습니다.
세 번째는 개발 중에 올려 둔 도구입니다. 파일 관리자, 데이터베이스 관리 도구, 임시로 만든 업로드 폼 같은 것들이 인증 없이 남아 있는 경우입니다. 이쪽은 열리는 순간 파일을 읽는 정도가 아니라 쓸 수 있게 되므로, 이 항목에서 나오는 사고 중 가장 크게 번집니다.
03CHECK IT YOURSELF
직접 확인하는 방법
아래는 저희를 거치지 않고 지금 해 보실 수 있는 방법입니다. 결과를 저희에게 보내실 필요도 없습니다.
-
01
흔한 이름을 그대로 넣어 본다
200 이 돌아오는 것이 있으면 그 자리에 파일이 있는 것입니다. 크기가 같이 큰지도 함께 보십시오 — 압축본이면 응답이 수십 메가입니다.
$ for f in backup.zip site.zip www.tar.gz .env config.php.bak db.sql; do printf "%-16s %s\n" "$f" "$(curl -s -o /dev/null -w '%{http_code} %{size_download}' https://example.com/$f)" done
나머지 확인 방법 2단계는 셀프수리 가이드에 있습니다.
04HOW TO FIX
고치는 방법
서버 환경에 따라 적을 자리가 다릅니다. 아래는 가장 흔한 구성 기준이고, 적용 전에 현재 설정을 백업하십시오.
설정 파일과 백업은 애초에 웹에서 닿는 자리에 두지 않는 것이 정답입니다. 서버 설정으로 막는 것은 설정이 살아 있는 동안만 유효하지만, 파일이 그 자리에 없으면 설정이 날아가도 안전합니다. 재배포나 서버 이전 때 설정만 사라지는 일이 실제로 자주 일어납니다.
가이드 안내 보기 · 먼저 무료로 진단받기
이미 열람권을 구매하셨다면 안내 메일의 가이드 링크로 바로 열립니다 — 링크를 잃으셨다면 문의 주시면 다시 보내 드립니다.
05FAQ
자주 묻는 질문
주소를 모르면 못 여는 것 아닌가요
- 사람은 못 찾지만 도구는 찾습니다. 흔한 이름 목록으로 훑는 것이 기본이고, 그 밖에도 경로가 새는 자리가 많습니다. 오류 화면에 찍힌 절대 경로, 검색엔진에 잡힌 옛 링크, 브라우저 확장이 수집한 방문 기록 같은 것들입니다. 「모를 것이다」를 방어로 세지 않는 것이 이 항목의 요지입니다.
.git 이 열려 있으면 정확히 무엇이 넘어가나요
- 커밋 기록 전체입니다. 도구 하나로 저장소를 그대로 복원할 수 있고, 그러면 현재 소스뿐 아니라 과거에 지운 것까지 복원됩니다. 실수로 커밋했다가 다음 커밋에서 지운 접속 정보가 가장 흔한 피해입니다. 지금 코드에 없다는 것은 안전의 근거가 되지 않습니다.
백업을 웹 루트에 두면 안 되는 이유가 뭔가요
- 백업은 정의상 사이트에서 가장 값나가는 파일 하나로 압축된 것이기 때문입니다. 한 번의 요청으로 전부를 가져갈 수 있고, 다운로드는 정상 트래픽으로 보여 눈에 띄지도 않습니다. 백업이 필요하면 웹에서 닿지 않는 경로나 별도 저장소에 두십시오.
차단 규칙을 넣었는데 파일이 열립니다
- 규칙이 걸리는 범위를 확인하십시오. .htaccess 는 그 폴더와 하위에만 적용되고, 서버 설정에서 AllowOverride 가 꺼져 있으면 아예 읽히지 않습니다. 그리고 정적 파일을 앞단 캐시나 CDN 이 대신 주고 있다면 원본 서버의 규칙을 지나갑니다. 어느 쪽인지는 요청 헤더로 가릴 수 있습니다.
GET STARTED
내 사이트는
이 항목을 통과할까요
주소만 넣으시면 이 항목을 포함해 58가지를 판정해 점수와 실패 개수를 보여 드립니다. 로그인도, 소유 확인도 필요 없습니다 — 전부 밖에서 관찰만 하는 항목이기 때문입니다.