위조된 리퍼러 예제 코드는 주로 안티-리칭을 돌파하는 데 사용됩니다.
다음은 특정 애플리케이션에 맞게 직접 수정할 수 있는 전체 프로그램입니다.
제가 여기서 제시하는 예는 사실 매우 간단합니다. 이 예를 통해 많은 애플리케이션을 개발할 수 있습니다. 예를 들어 실제 URL 주소를 숨긴다던가... 헤헤, 그냥 직접 분석해서 여기서 file.php라는 새 파일을 만들어보세요. 다음 매개변수는 위조해야 하는 참조자의 대상 주소입니다. 예: file.php/http://www.xxx.xxx/xxx.mp3
<?
$url=str_replace('/file.php/','',$_SERVER["REQUEST_URI"]);//변환이 필요한 URL을 가져옵니다. 여기서는 게을러서 보안 검사를 하지 않겠습니다. 필요한 경우 직접 추가하겠습니다.
$downfile=str_replace(" ","%20",$url);//공백 등을 바꾸세요. 실제 상황에 따라 바꿀 수 있습니다.
$downfile=str_replace(" http://","",$downfile);// http:// 제거
$urlarr=explode("/",$downfile);//도메인 이름을 분해하려면 "/"를 사용하세요.
$domain=$urlarr[0];//도메인 이름
$getfile=str_replace($urlarr[0],'',$downfile);//헤더에서 GET 부분을 가져옵니다.
$content = @fsockopen("$domain", 80, $errno, $errstr, 12);//대상 호스트에 연결
if (!$content){//링크를 업로드할 수 없으면 오류 메시지가 표시됩니다.
die("죄송합니다. $domain에 연결할 수 없습니다.");
}
fputs($content, "GET $getfile HTTP/1.0rn");
fputs($content, "호스트: $domainrn");
fputs($content, "Referer: $domainrn");//위조된 부분
fputs($content, "사용자 에이전트: Mozilla/4.0(호환; MSIE 6.0; Windows NT 5.1)rnrn");
동안 (!feof($content)) {
$tp.=fgets($content, 128);
if (strstr($tp,"200 OK")){ //여기서 몇 가지 설명이 필요합니다. 헤더의 첫 번째 줄은 일반적으로 요청된 파일의 상태입니다. 자세한 내용은 HTTP 1.1 상태 코드 및 해당 의미를 참조하세요. hi.baidu.com/110911/blog/item/21f20d2475af812ed50742c5.html 이는 일반적인 파일 요청 상태이므로 직접 리디렉션하면 됩니다. 다른 상태의 프로그램 계속 실행
header("위치:$url");
주사위();
}
}
//302 리디렉션, 대부분의 안티 핫링크 시스템은 먼저 리퍼퍼를 결정한 다음 올바른 경우 실제 주소로 리디렉션합니다. 다음은 실제 주소를 얻는 것입니다.
$arr=폭발("n",$tp);
$arr1=explode("Location: ",$tp);//Location 뒤에 있는 실제 주소 추출
$arr2=폭발("n",$arr1[1]);
header('Content-Type:application/force-download');//강제 다운로드
header("location:".$arr2[0]);//대상 주소로 리디렉션
주사위();
?>
이 프로그램은 핫링크 여부를 판단하기 위해 리퍼러를 사용하는 안티 핫링크 시스템에만 사용할 수 있습니다. 핫링크를 방지하기 위해 다른 특별한 방법을 사용하는 경우 이 추정치는 적용되지 않습니다.