사진 도 난 방지 체인 원리 및 실현

4144 단어 php
도 난 방지 체인 원리:
http 표준 프로 토 콜 에 전문 필드 기록 refer 가 있 습 니 다.
1.그 는 요청 할 때 어느 사이트 에서 링크 되 었 는 지 거 슬러 올 라 갈 수 있다.
2.자원 파일 에 대해 그의 웹 주 소 를 표시 하 는 것 이 무엇 인지 추적 할 수 있 습 니 다.
따라서 모든 도 난 방지 체인 방법 은 이 Referer 필드 를 기반 으로 합 니 다.
인터넷 에 많이 나 오 는 2 가지.
하 나 는 apache 파일 FileMatch 제한 을 사용 하여 httpd.conf 에 추가 하 는 것 입 니 다.
SetEnvIfNoCase Referer "^http://yahoo.com/" local_ref=1

Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1 

이것 은 접근 이 허용 되 지 않 는 URL 로 각종 자원 파일 을 인용 하 는 것 을 금지 하 는 데 매우 편리 하 다.
모두 주의 하 세 요.http://yahoo.com/"당신 의 사이트 로 바 꾸 세 요.예 를 들 어 제 사 이 트 는:http://www.linji.cn
이렇게 써 야 되 는데.
"^ http://www.linji.cn/"
두 번 째 는 rewrite 를 사용 하여 apache 의 mode 를 증가 시 켜 야 합 니 다.rewrite,지원.htaccess 파일 디 렉 터 리 권한 은 가상 호스트 루트 디 렉 터 리 에 제한 되 어 있 습 니 다.htaccess 파일 은 방향 을 정 하고 로 컬 주소 refer 가 아 닌 그림 파일 을 경고 그림 이나 경고 페이지 로 지정 합 니 다.먼저 서버 나 공간의 서버 해독 엔진 을 Apache 2 로 확인 하고,htaccess 클 라 이언 트 설정 파일 을 지원 합 니 다.서버 가 있 으 면 다음 과 같이 수정 하 십시오.\#LoadModule rewritemodule modules/mod_rewrite.so 앞 에 있 는\#을 잃 어 버 리 고 찾 는 등 AllowOverride None 을 AllowOverride All 로 바 꾸 고 아파 치 2 서버 를 다시 시작 합 니 다.
(여기 서 도 난 방지 체인 과 방향 을 소개 한다)
먼저 그림 도 난 방지 체인 과 방향 을 설명 합 니 다.
그림 도 난 방지 체인 은 무슨 소 용이 있 습 니까?
다른 사이트 가 당신 의 사진 을 도용 하여 당신 의 귀중 한 데 이 터 를 낭비 하 는 것 을 방지 하 세 요.
그림 을 돌려 서 무슨 소 용이 있 습 니까?
만약 당신 의 사이트 가 그림 을 위주 로 한다 면,어느 날 월말 에 데이터 가 도착 하지 않 으 면 곧 다 써 버 릴 것 입 니 다.그러면 그림 을 이용 하여 방향 을 바 꿀 수 있 습 니 다.웹 페이지 를 수정 하지 않 는 전제 에서 사진 다운로드 요청 을 다른 공간(예 를 들 어 호스트 사용)으로 바 꾸 고 임시 과도 할 수 있 습 니 다.
다음 설명 을 시작 하 겠 습 니 다.예 를 들 어 그림 이 img 디 렉 터 리 에 있 습 니 다.이 디 렉 터 리 아래 에'htaccess'라 는 파일 을 놓 으 십시오.내용 은 다음 과 같 습 니 다.
  RewriteEngine on
  RewriteCond %{HTTP_REFERER} !^$ [NC]
  RewriteCond %{HTTP_REFERER} !simcole.cn [NC]
  RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
  RewriteCond %{HTTP_REFERER} !google.com [NC]
  RewriteCond %{HTTP_REFERER} !baidu.com [NC]
  RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
  RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]
  RewriteRule ^(.*)$ http://image.simcole.cn/image/$1 [L]
대충 설명 하 다.
  RewriteCond %{HTTP_REFERER} !^$ [NC]
  RewriteCond %{HTTP_REFERER} !simcole.cn [NC]
  RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
  RewriteCond %{HTTP_REFERER} !google.com [NC]
  RewriteCond %{HTTP_REFERER} !baidu.com [NC]
  RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
이 부분 은 도 난 여 부 를 판단 하 는 것 입 니 다.만약 에 상기 조건 이 모두 성립 된다 면(즉,사진 을 방문 하 라 는 요청 은 사이트 주 소 를 직접 입력 하 는 것 도 아니 고 simcole.cn 에서 온 것 도 아니 고 zhuaxia.com 에서 온 것 도 아니 고 google.com 에서 온 것 도 아니 며 baidu.com 에서 온 것 도 아니 고 bloglines.com 에서 온 것 도 아니라면)다음 과 같은 방향 을 실행 하 십시오.
  RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]
모든 체인 img 디 렉 터 리 에 jpg,gif,png,bmp,swf,jpeg 파일 의 웹 페이지 를 표시 하 는 그림 은 image 디 렉 터 리 에 있 는 replace.gif 그림 으로 교체 한 다 는 뜻 이다.표시 되 는 그림 을 도 난 방지 체인 을 설정 한 img 디 렉 터 리 에 두 지 않도록 주의 하 십시오.위의 규칙 에 따라 그림 요청 이 체인 이 아 닌 것 으로 판단 되면 다음 과 같은 방향 으로 전환 합 니 다.
  RewriteRule ^(.*)$ http://image.simcole.cn/image/$1 [L]
img 디 렉 터 리 에 있 는 모든 요청 이 대상 서버 로 바 뀌 었 다 는 뜻 입 니 다.예 를 들 어 그림 의 원래 url 은?http://www.bebecn.com/img/girl.jpg 지금http://image.bebecn.com/image/girl.jpg 가다물론 원 서버 img 디 렉 터 리 에 있 는 파일 을 임시 서버 의 image 디 렉 터 리 에 모두 복사 해 야 진정 으로 사용 할 수 있 습 니 다.원 서버 이미지 다운로드 에 사용 되 는 데 이 터 를 모두 절약 하여 임시 서버 가 감당 할 수 있 도록 하 는 효과 가 있 습 니 다.
그리고 세 번 째:제 가 plog 의 도 난 금 지 를 해결 할 때 문 제 를 발견 하면 좋 은 방법 이 라 고 할 수 있 습 니 다.plog 는 모든 자원 을 스스로 관리 하고 resserver.php 로 동적 으로 표시 합 니 다.이렇게 통 일 된 입 구 는 권한 을 추가 하 는 데 편리 합 니 다.이 동시에 위의 두 가지 방법 을 사용 할 수 없습니다.apache 가 자원 파일 에 직접 접근 하 는 것 이 아니 라 phop 이 파일 을 통 해 읽 기 때 문 입 니 다.따라서 코드 에서 만 손발 을 할 수 있 습 니 다.자원 파일 출력 을 읽 기 전에 다음 과 같은 판단 코드 참조 가 추 가 됩 니 다.
$referer = $_SERVER['HTTP_REFERER']; //HTTP Referer header    ,     web          ,     Referer,                 ,                 。
$selfurl = $_SERVER['HTTP_HOST'];// php ,      $_SERVER['HTTP_HOST']   URL        ip  。
if(false == strpos($referer,$selfurl))
{
echo '    !';
exit(1);
} 

좋은 웹페이지 즐겨찾기