Linux WEB

특정 웹 사이트의 페이지를 외부사이트에서 링크하여 사용하는 경우는 대부분 사전 허락이 된 경우이지만 그렇지 않은 경우 불필요한 부하가 많이 발생하여 심할 경우 서버 자체가 다운되는 원인이 될 수 도 있습니다.

그와 같은 사태를 방지하기 위한 예방은 /usr/local/apache/conf/extra/httpd-mpm.conf 파일의 가상호스트 설정에서 간단히 해결할 수 있습니다.


다음은 abc123.co.kr 이라는 홈페이지가 있다고 가정한 상황의 가상 호스트 설정 예시입니다.


[httpd-mpm.conf]

<VirtuaHost 192.168.0.201>

    ServerAdmin webmaster@abc123.co.kr

    DocumentRoot /home/abc123/www

    ServerName example.co.kr

    ServerAlias www.abc123.co.kr.com

SetEnvIFNoCase Referer "abc123.co.kr" link_allow

    <FilesMatch "\.(gif|jpg)$">

        Order allow,deny

        allow from env=link_allow

        #deny from all

    </FilesMatch>

</VirtualHost>


위에서 진하게 표시된 부분이 외부 링크를 막는 설정입니다.


SetEnvIFNoCase Referer "abc123.co.kr" link_allow

이것은 변수를 설정하는 것으로 대소문자구분없이 referer(이전 방문 url 값)에 abc123.co.kr 이 들어가 있는 부분만 link_allow 라는 변수에 할당합니다.


<FilesMatch "\.(gif|jpg)$">

    Order allow,deny

    allow from env=link_allow

    #deny from all

</FilesMatch>

이 부분은 확장자가 .gif 또는 .jpg 로 끝나는 파일명에 대하여 허용 여부를 설정하는 것으로 위에서 설정한 link_allow의 변수에 해당하는 경우만 허용하겠다는 의미입니다.



정리하자면, 현재 이 웹사이트의 도메인은 abc123.co.kr이며 *.gif 또는 *.jpg 이미지 파일들에 대하여 abc123.co.kr 이라는 도메인이름이 들어가 있지 않은 referer에 대한 외부의 무단링크를 허용하지 않겠다는 설정입니다. 따라서, abc213.co.kr 웹사이트 자체에서 링크하여 사용하는 것은 얼마든지 가능하지만 외부의 웹사이트에서 abc123.co.kr*.gif 또는 *.jpg 파일의 무단 링크는 모두 차단됩니다. 이를 응용하면 다른 파일들에 대해서도 외부의 무단링크 차단 설정을 할 수 있습니다.