1: 일반적인 핫링크 방지 보호는 다음과 같습니다.
<code>location ~* \.(gif|jpg|png|swf|flv)$ { valid_referers none blocked www<span>.jzxue</span><span>.com</span> jzxue<span>.com</span><span>; </span> if ($invalid_referer) { rewrite ^/ http://www<span>.jzxue</span><span>.com</span>/retrun<span>.html</span><span>; </span><span>#return 403; </span> } } </code>
첫 번째 줄: gif|jpg|png|swf|flv
gif, jpg, png, swf 및 flv 접미사가 포함된 파일이 핫링크로부터 보호됨을 나타냅니다.
두 번째 줄 : www.ingnix.com
의 두 가지 출처에 대한 판단을 나타냅니다.
if{}의 내용의 의미는 소스가 지정된 소스가 아닌 경우 http://www.jzxue.com/retrun.html 페이지로 이동한다는 것입니다. 물론 직접 반환하는 것도 가능합니다. 403. of.
2: 이미지 디렉토리에 대한 핫링크 방지
<code>location /images<span>/</span> { alias /<span>data</span>/images<span>/</span>; valid_referers <span>none</span> blocked server_names <span>*</span><span>.</span>xok<span>.</span>la xok<span>.</span>la ; <span>if</span> (<span>$invalid_referer</span>) {<span>return</span><span>403</span>;} } </code>
3: 타사 모듈 ngx_http_accesskey_module을 사용하여 Nginx 핫링크 방지 구현
구현 방법은 다음과 같습니다.
1. NginxHttpAccessKeyModule 모듈 파일을 다운로드합니다: http://wiki.nginx.org/File:Nginx-accesskey-2.0.3.tar.gz;
2. 이 파일의 압축을 푼 후 nginx-accesskey-2.0.3에서 구성 파일을 찾습니다. 이 파일을 편집하세요. "$HTTP_ACCESSKEY_MODULE"을 "ngx_http_accesskey_module"로 바꾸세요.
3. 다음 매개변수를 사용하여 nginx를 다시 컴파일합니다.
<code>./configure --<span>add</span>-<span>module</span>=path/<span>to</span>/nginx-accesskey <<pestd <span>add</span></code>위의 원래 컴파일 매개변수를 추가한 후 다음을 실행해야 합니다. make && make install
<code><span>location</span> /download { <span>accesskey</span><span>on</span>; <span>accesskey_hashmethod</span> md5; <span>accesskey_arg</span><span>"key"</span>; <span>accesskey_signature</span><span>"mypass<span>$remote_addr</span>"</span>; }</code>여기서:
accesskey는 모듈 스위치입니다.
accesskey_hashmethod는 암호화 방법 MD5 또는 SHA-1입니다.
accesskey_arg는 URL의 키워드 매개변수입니다.
accesskey_signature는 암호화된 값으로, 여기서는 mypass와 접속 IP로 구성된 문자열입니다.
테스트 스크립트 download.php에 액세스합니다.
<code><span><span><?</span><span>$ipkey</span>= md5(<span>"mypass"</span>.<span>$_SERVER</span>[<span>'REMOTE_ADDR'</span>]); <span>$output_add_key</span>=<span>"<a href=http://www.jzxue.com/download/G3200507120520LM.rar?key="</span>.<span>$ipkey</span>.<span>">download_add_key</a><br />"; <span>$output_org_url</span>=<span>"<a href=http://www.jzxue.com/download/G3200507120520LM.rar>download_org_path</a><br />"</span>; <span>echo</span><span>$output_add_key</span>; <span>echo</span><span>$output_org_url</span>; <span>?></span></code>첫 번째 download_add_key 링크에 액세스하면 정상적으로 다운로드할 수 있지만 두 번째 링크 download_org_path에서는 403 Forbidden 오류가 반환됩니다.
참고:
NginxHttpAccessKeyModule
http://xok.la/2009/03/nginx_http_accesskey_module_referer.html