밀어서 잠금해제

IIS 핫링크 방지하기 (Hotlink Protection) 본문

Web/IIS

IIS 핫링크 방지하기 (Hotlink Protection)

Squirrel you틸 2014.08.04 18:00

Windows 8.1 기준이긴 하지만 어지간한 구형 윈도우가 아닌 이상 다 될 거라 본다.


일단 URL 재작성 (Rewrite)부터 설치해야 하는데 이미 있는 분들은 생략한다.

http://www.iis.net/downloads/microsoft/url-rewrite

위 링크에서 'Install this extension' 클릭 후 대충 확인 눌려주고 설치를 해준다. 



설치가 대략 끝나면 URL 재작성이 생기는데 (없으면 끄고 켠다.) 원하는 사이트에서 더블 클릭으로 들어가 본다.


여기서 오른쪽 메뉴에서 '작업 - 규칙 추가' 빈규칙으로 확인을 눌러준다.


이제 아무것도 없는 빈 페이지가 나온다.

인바운드 규칙 편집에서 이름은 아무거나 원하는 걸로 입력한다.


URL 검색에서는 요청한 URL: 패턴과 일치, 사용: 정규식

패턴은 대/소문자 무시를 체크한 후 밑에 값을 넣어준다.

.*\.(jpg|jpeg|png|gif|bmp)$

조건에서는 논리 그룹화 모두 일치로 설정하고 밑에 조건에 따라 캡처 그룹 추적은 체크하지 않는다.

추가를 눌려준 후 밑에 값처럼 넣어준다.

조건 입력: {HTTP_REFERER}

유형: 패턴과 일치하지 않음

패턴:

^$ 

^http://www.mydomain.com/.*$

^http://mydomain.com/.*$

대/소문자 무시


마지막으로 작업 유형 재작성 나머지 체크는 모두 해제하고

URL 재작성에 원하는 링크나 보여줄 이미지로 연결해주면 된다.


이제 이미지 링크를 누군가가 퍼가도 위에 작성한 링크로 이미지가 출력된다.


보너스! 위 작업을 좀 더 간단하게 작업하기!

web.config 편집하기를 눌려서

<!--?xml version="1.0" encoding="UTF-8"?-->
<configuration>
    <system.webserver>
        <rewrite>
            <rules>
                <rule name="Prevent hotlinking">
                    <match url=".*\.(jpg|jpeg|png|gif|bmp)$">
         		 <conditions>
        		    <add input="{HTTP_REFERER}" pattern="^$" negate="true">
        		    <add input="{HTTP_REFERER}" pattern="^http://www.mydomain.com/.*$" negate="true">
        		    <add input="{HTTP_REFERER}" pattern="^http://mydomain.com/.*$" negate="true">
                    </add></add></add></conditions>
                    <action type="Rewrite" url="/hotlink-ok/noimage.jpg" appendquerystring="false">
                </action></match></rule>
            </rules>
        </rewrite>
    </system.webserver>
</configuration>


위에 코드를 붙여넣기 후 저장하면 좀 더 간단하게 작업이 가능하다.


참조한 글: http://www.gamedevforever.com/317

0 Comments
댓글쓰기 폼