워드프레스나 티스토리를 운영하다 보면 글보다 먼저 빠져나가는 게 사진 트래픽이라는 걸 체감할 때가 있습니다. 저도 처음에는 단순히 다른 사이트에서 이미지 링크를 붙여 쓰는 정도로 생각했는데, 실제로 확인해보니 내 호스팅 서버가 외부 사이트 이미지 요청까지 계속 처리하는 구조가 되고 있었습니다.
겉으로는 사진 한 장 공유된 것처럼 보여도, 실제로는 제 서버가 계속 응답하고 있는 셈입니다. 특히 워드프레스처럼 이미지가 많은 사이트, 여러 사이트를 한 서버에서 같이 돌리는 환경에서는 이런 요청도 쌓이면 부담이 됩니다. 그래서 이번에는 cPanel 핫링크 차단 설정을 다시 정리하면서, 어떤 부분이 잘못되기 쉽고 어떻게 잡아야 안전한지 직접 확인한 내용을 정리해봤습니다.
핫링크 차단이 왜 필요한지
핫링크는 다른 사이트가 내 서버에 있는 이미지 주소를 그대로 자기 페이지에 붙여서 보여주는 방식입니다.
그리고 이 경우 이미지는 다른 사이트에서 보이지만, 실제 파일은 내 서버가 계속 전송하게 되는것으로 처음에는 큰 차이 없어 보여도, 커뮤니티 게시판이나 외부 블로그에 이미지가 여러 장 붙으면 내 사이트 방문자가 아닌데도 내 서버 트래픽은 계속 올라갑니다.
특히 원본 이미지가 크거나 webp, avif처럼 고화질 파일이 많으면 대역폭과 서버 응답도 무시하기 어렵습니다.
여기서 핵심은 조건 없는 이미지 전부 차단 규칙이 먼저 들어가 있으면 안 된다는 점입니다. 이전에 규칙이 꼬여 있으면 외부 사이트만 막는 게 아니라 내 사이트 이미지도 같이 죽는 일이 생길 수 있습니다.
외부 사이트에서 사진이 계속 보이는 이유도 있습니다
핫링크를 걸었는데도 어떤 커뮤니티나 게시판에서 사진이 계속 보이는 경우가 있습니다. 이건 무조건 설정이 틀렸다고 보기 어렵습니다. 이유는 간단합니다. 상대 사이트가 내 이미지를 직접 불러오는 게 아니라, 자기 서버에 한 번 저장하거나 프록시 캐시를 거쳐 보여주는 방식일 수 있기 때문입니다.
이 경우에는 cPanel 기본 핫링크 차단만으로는 못 막습니다. 실제로 외부 사이트에서 사진이 보이더라도, 이미지 주소를 우클릭해서 보면 내 원본 도메인이 아니라 그 사이트 캐시 주소나 다른 CDN 주소로 바뀌어 있는 경우가 있습니다.
즉 핫링크 차단은 꽤 효과적이지만, 모든 이미지 퍼가기를 완벽하게 막는 만능 기능은 아닙니다. 이 부분은 기대치를 너무 높게 잡지 않는 편이 현실적이었습니다.
캐시를 같이 봐야 설정 반영이 체감됩니다
핫링크 설정을 바꿨는데도 바로 체감이 안 되거나, 외부 사이트에서 여전히 이미지가 보이는 것처럼 느껴질 때는 대부분 규칙 자체보다 캐시가 남아 있는 경우가 많았습니다.
브라우저 캐시, 워드프레스 캐시 플러그인, Cloudflare 캐시가 남아 있으면 이전 상태가 한동안 계속 보일 수 있습니다. 그래서 저는 설정을 바꾼 뒤에는 단순 새로고침보다 강력 새로고침과 캐시 비우기까지 같이 보는 편이 더 정확했습니다.
우클릭 방지는 보조 수단으로만 보는 편이 낫습니다
예전에는 저도 우클릭 방지나 드래그 차단 쪽을 같이 썼던 적이 있습니다.
티스토리나 워드프레스에서 자바스크립트로 마우스 우클릭, 드래그, 키보드 단축키를 막는 방식입니다.
이 방식은 초보적인 복사를 조금 줄이는 데는 도움이 될 수 있습니다. 다만 저는 지금은 추천도를 높게 보지 않습니다.
그 이유는 명확합니다. 사용자가 필요한 드래그까지 같이 막아버릴 수 있고, 정말 가져갈 사람은 다른 방식으로 결국 가져가기 때문입니다. 이미지 트래픽 보호 목적이라면 저는 여전히 우클릭 방지보다 핫링크 차단이 먼저라고 봅니다.
워드프레스 플러그인 방식의 불펌 방지도 장단점이 있습니다
워드프레스에서는 우클릭 방지나 복사 방지를 도와주는 플러그인도 꽤 많습니다.
대표적으로 WP Content Copy Protection & No Right Click 같은 계열이 자주 언급되는데요 이미지 우클릭 제한, 드래그 제한, 경고창 출력, 일부 워터마크 기능까지 같이 들어가는 경우도 있습니다.
다만 이런 플러그인은 기능이 많아질수록 충돌 가능성이나 취약점 이슈도 같이 봐야 합니다.
저는 지금은 이런 계열 플러그인은 정말 필요한 경우가 아니면 최소한으로만 보는 편입니다. 무엇보다 사진 트래픽 보호가 목적이라면, 플러그인보다 서버 단 핫링크 차단이 훨씬 직접적인 대응이었습니다.
제가 최종적으로 정리한 운영 방식
이번에 다시 정리하면서 내린 결론은 단순했습니다. 워드프레스나 티스토리에서 사진을 보호하고 싶다면, 가장 먼저 해야 할 건 우클릭 금지가 아니라 외부 사이트가 내 이미지를 직접 끌어다 쓰고 있는지 확인하는 것이었습니다.
그다음에는 cPanel 핫링크 보호에서 허용 도메인을 개별 등록하고, 이미지 확장자를 정확히 넣고, .htaccess 규칙이 꼬이지 않았는지 확인하는 쪽이 더 실용적이었습니다. 여기에 브라우저 캐시와 CDN 캐시까지 정리해주면 적용 여부가 더 분명하게 보였습니다.
저라면 지금은 이렇게 정리합니다.
이미지 트래픽 보호는 우클릭 금지보다 핫링크 차단을 먼저
허용 도메인은 정규식 한 줄보다 도메인별 한 줄 입력
필요하면 .htaccess 직접 확인
브라우저 직접 열림 여부만 보고 실패라고 단정하지 않기
외부 커뮤니티 캐시나 프록시 방식은 별개로 보기
우클릭 방지 플러그인은 보조 수단 정도로만 보기
예전에는 단순히 “불펌 막기” 정도로만 생각했는데, 실제로는 내 서버 트래픽과 자원을 지키는 설정에 더 가까웠습니다. 특히 워드프레스처럼 이미지가 많은 사이트, 여러 사이트를 한 서버에서 같이 운영하는 환경, 커뮤니티 공유가 잦은 운영 방식이라면 핫링크 차단은 생각보다 체감 차이가 큽니다.
저도 이번에 다시 정리하면서 느낀 건, 우클릭 방지처럼 눈에 띄는 기능보다 서버 단에서 조용히 막아주는 설정이 훨씬 오래 가고 안정적이었다는 점입니다. 이미지를 보호하고 싶다면 가장 먼저 그 방향부터 보는 편이 낫습니다.
Q. 핫링크 차단을 했는데 이미지 주소를 직접 열면 사진이 보입니다. 실패한 건가요?
그럴 수도 있습니다. 핫링크 차단은 다른 사이트 안에서 img 태그로 불러오는 요청을 막는 개념이라, 브라우저 주소창에 직접 여는 것만 보고 실패라고 단정하면 안 됩니다.
Q. cPanel 핫링크 보호만 켜면 끝인가요?
대부분은 도움이 되지만, 허용 도메인 입력 방식이나 .htaccess 규칙이 꼬이면 오히려 내 사이트 이미지까지 안 보일 수 있습니다. 설정 후 실제 규칙까지 한 번 확인하는 편이 안전합니다.
Q. 외부 커뮤니티에서 사진이 계속 보이면 핫링크 차단이 안 먹은 건가요?
꼭 그렇지는 않습니다. 일부 커뮤니티는 이미지를 자기 서버로 저장하거나 프록시 캐시를 거쳐 보여주기 때문에 cPanel 기본 핫링크 차단만으로는 못 막는 경우가 있습니다.
Q. 우클릭 방지 플러그인까지 같이 써야 하나요?
보조 수단으로는 가능하지만, 사용자 경험이 떨어지고 완전한 보호도 어렵습니다. 이미지 트래픽 보호 목적이라면 우클릭 방지보다 핫링크 차단을 먼저 보는 편이 더 실용적입니다.