Nginx에서 이미지 무단도용(링크) 막기

Posted by Everyharu
2016. 6. 23. 16:40 IT/서버세팅

웹개발을 하다보면 네이버와 같은 곳에서 제공하는 일부 이미지들은 다른 사이트에 복사해서 올렸을때 표시가 안되는 현상을 만나볼 수 있다.


예를들면 네이버에서 올려둔 이미지를 드래그해서 복사해서 A 커뮤니티에 올렸을 때
이 그림이 깨져있는 현상은 아래의 방지하는 구문을 만들어줌으로서 가능해진다.


이를 Nginx 에서 구현하려면 어떻게 해야하는지 간단하게 나타낸 것이다.

1
2
3
4
5
6
location ~* \.(gif|png|jpe?g|ico|bmp)$ { 
valid_referers none blocked kafra.kr *.kafra.kr; 
     if ($invalid_referer) { 
     return 403
    } 
}
cs


http://nginx.org/en/docs/http/ngx_http_referer_module.html#valid_referers


apache에서도 가능하다. 요점은 referer를 체크하여 내가 허락한 host를 가지는 사이트에서 request가 들어왔을때에만

이미지 파일을 전달해 주는 것이다.


이는 php같은 언어단에서 구현해도 상관없지만 기왕이면 WebServer단에서 걸러주는것이 여러 상황에서 좀 더 확실할 것이다.