개인정보: 이 페이지가 할 수 있는 것과 없는 것
로그에는 주소, 사용자 이름, 토큰이 붙은 URL, 때로는 그보다 나쁜 것이 들어 있습니다. 이런 한 줄만으로도 시스템과 사용자에 대해 많은 것을 알 수 있습니다.
198.51.100.7 - - [18/Oct/2026:10:02:03 +0000] "POST /api/upload HTTP/1.1" 504 167 "-" "curl/8.5.0" 60.001 60.000이 페이지는 놓은 것이 탭 안에 머물도록 만들었습니다. 아래에 그 방법, 그 방법이 막지 못하는 것, 그리고 우리 말을 믿는 대신 직접 확인하는 법을 적었습니다.
Content-Security-Policy
log.grepboard.com 의 모든 페이지는 다음 정책과 함께 제공됩니다(해시는 첫 화면 전에 테마를 적용하는 작은 인라인 스크립트 하나의 것입니다).
default-src 'none';
script-src 'self' 'wasm-unsafe-eval' 'sha256-…';
style-src 'self';
img-src 'self' data: blob:;
font-src 'self';
worker-src 'self';
connect-src 'none';
manifest-src 'self';
base-uri 'none';
form-action 'none';
frame-ancestors 'none'| 지시어 | 효과 |
|---|---|
default-src 'none' | 아래에서 허용하지 않은 것은 모두 막힙니다. |
connect-src 'none' | fetch · XHR · WebSocket · EventSource · sendBeacon 을 어떤 호스트로도(log.grepboard.com 포함) 할 수 없습니다. 업로드를 불가능하게 만드는 줄입니다. |
script-src 'self' 'wasm-unsafe-eval' 'sha256-…' | 이 사이트의 스크립트, WebAssembly 코어, 테마 인라인 스크립트 하나만 됩니다. 외부 스크립트도, 통계도, 광고도 없습니다. |
img-src 'self' data: blob: | 이미지는 이 사이트나 로컬에서 만든 것만 됩니다. 이미지 요청으로 다른 호스트에 데이터를 실어 보낼 수 없습니다. |
style-src 'self', font-src 'self' | 스타일과 글꼴은 이 사이트에서만 받습니다. |
worker-src 'self' | 분석 Worker 는 이 사이트에서 와야 합니다. |
form-action 'none' | 폼을 어디로도 보낼 수 없습니다. |
base-uri 'none', frame-ancestors 'none' | base URL 을 바꿀 수 없고, 다른 사이트의 프레임 안에 넣을 수 없습니다. |
그 밖의 응답 헤더: Referrer-Policy: no-referrer(여기서 따라간 링크는 어디서 왔는지 다음 사이트에 알리지 않음), X-Content-Type-Options: nosniff, Permissions-Policy: camera=(), microphone=(), geolocation=(), Strict-Transport-Security, Cross-Origin-Opener-Policy: same-origin.
무엇을 어디에 저장하나
- 쿠키는 없습니다.
- log.grepboard.com 에는 통계 스크립트도, 추적 픽셀도, 광고 스크립트도 없습니다.
- 로그는 탭이 열려 있는 동안 탭의 메모리에만 있고, 탭을 닫거나 새로 고치면 사라집니다.
- 브라우저의 로컬 저장소에는 설정 몇 가지만 둡니다.
gb.theme(밝게 · 어둡게),gb.style(시각 스타일),gb.introHideUntil(개인정보 안내를 다시 보여 줄 때),gb.recipes(저장한 커스텀 형식 레시피),gb.mask(내보내기 가리기를 끈 때만 생김)입니다. 어느 것에도 로그 줄은 없습니다. 사이트 데이터를 지우면 함께 지워집니다.
페이지를 내주는 서버는 페이지와 파일을 요청받을 때 여느 웹 서버가 보는 것을 봅니다. IP 주소, 사용자 에이전트, 그 파일들의 경로입니다. 로그는 보지 못합니다. 페이지가 보낼 수 없기 때문입니다.
정책이 막지 못하는 것
한계를 정확히 말하는 것도 이 페이지의 몫입니다.
- 브라우저 확장 프로그램은 자기 권한으로 동작하며 이 페이지를 포함해 여는 모든 페이지를 읽을 수 있습니다. 믿지 못하는 확장이 있다면 민감한 로그는 깨끗한 브라우저 프로필에서 보십시오.
- 내보내거나 복사한 것은 직접 다루셔야 합니다. 내보내기에는 원문 줄이 아니라 집계 숫자가 들어갑니다. 가리기는 기본으로 켜져 있어 IP 주소는 앞 두 자리와 짧은 꼬리표만 남고, 이메일은
***@***, 긴 16진수/base64 토큰과password=·token=꼴 값은***가 됩니다. 상위 목록의 경로 같은 이름은 그대로 보이니 보내기 전에 살펴보십시오. - 보고서 링크와 레시피 링크는 내용을 주소의
#뒤에 싣습니다.#뒤는 브라우저가 서버로 보내지 않습니다 — 링크를 열 때 log.grepboard.com 에도, Referer 머리글에도 실리지 않습니다. 보고서 링크에는 집계한 보드(원문 줄 없음, 가리기를 끄지 않았다면 가린 상태)만, 레시피 링크에는 레시피 자체(이름, 줄을 나누는 방법, 칸 이름과 역할, 직접 넣은 정규식·형식 정의·시각 형식·시간대)만 들어가고 로그 줄은 들어가지 않습니다. 링크를 가진 사람은 그 내용을 읽을 수 있습니다. 보내는 파일과 같습니다. - CSP 는 링크가 어디로 가는지는 다스리지 않습니다. 페이지는 원문 로그 줄을 링크에 넣지 않습니다. 보고서 링크에는 보고서에 보이는 것만 들어갑니다.
- 글꼴로 새는 길도 없습니다. 페이지는 로그를 열기 전에 매번 같은 라틴 글꼴 파일 세 개를 미리 받고, 로그에서 나온 글자와 한국어 등 라틴 문자가 아닌 글은 모두 이미 설치된 시스템 글꼴로 그립니다. 로그 내용에 따라 브라우저가 요청하는 파일이 달라지지 않습니다.
직접 확인하는 법
- 터미널에서 헤더를 확인합니다:
curl -sI https://log.grepboard.com/ | grep -i '^content-security-policy' - 브라우저에서 개발자 도구 → 네트워크를 열고 「로그 보존」을 켠 뒤 새로 고칩니다. 문서 요청을 누르면 content-security-policy 응답 헤더가 있습니다.
- 목록을 지우고 로그를 놓습니다. 데이터를 싣는 요청은 없습니다.
- 개발자 도구 콘솔에서
fetch("https://example.com")를 실행해 보십시오. 브라우저가 거부하고 connect-src 에 대한 Content-Security-Policy 위반을 알립니다. - 네트워크 제한을 「오프라인」으로 바꾸고 다른 파일을 놓습니다. 처음부터 네트워크가 필요 없었으므로 그대로 동작합니다.
자주 묻는 질문
log.grepboard.com 이 내 로그를 업로드하나요?
아닙니다. 페이지가 Content-Security-Policy connect-src 'none' 으로 제공되어, 데이터를 보낼 수 있는 요청을 브라우저가 모두 막습니다. 헤더와 네트워크 탭을 직접 확인할 수 있습니다.
쿠키나 통계를 쓰나요?
쿠키도 통계 · 광고 스크립트도 없습니다. 브라우저 로컬 저장소에 설정 몇 가지(테마, 시각 스타일, 개인정보 안내를 다시 보일 때, 저장한 형식 레시피, 내보내기 가리기를 껐는지)만 둡니다.
브라우저 확장이 내 로그를 읽을 수 있나요?
페이지를 읽을 권한이 있는 확장이라면 읽을 수 있습니다. 확장은 페이지의 Content-Security-Policy 밖에 있습니다. 민감한 로그는 확장이 없는 프로필에서 보십시오.
내보낸 것을 공유해도 안전한가요?
내보내기에는 건수와 상위 목록만 있고 원문 줄은 없습니다. 다만 상위 목록에 경로와 클라이언트 주소가 들어갈 수 있으니 보내기 전에 살펴보십시오.