전체 프로그램은 여기에서 직접 제공됩니다. 특정 응용 프로그램에 맞게 직접 수정할 수 있습니다.
제가 여기서 제시하는 예는 사실 매우 간단합니다. 이 예를 통해 많은 애플리케이션을 개발할 수 있습니다. 예를 들어 실제 URL 주소를 숨긴다던가... ㅎㅎ 그냥 직접 분석해보세요
여기서 file.php 파일을 새로 만들어주세요. 다음 매개변수는 위조해야 하는 참조자의 대상 주소입니다. 예: file.php/http://www.xxx.xxx/xxx.mp3
코드 복사 코드는 다음과 같습니다.
$url=str_replace('/file.php/','',$_SERVER["REQUEST_URI"]);//변환이 필요한 URL을 가져옵니다. 여기서는 게을러서 보안 검사를 하지 않습니다.
$downfile=str_replace(" "," ",$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, "Host: $domainrn");
fputs($content, "Referer: $domainrn");//가짜 부분
fputs($content, " 사용자 에이전트: Mozilla/4.0(호환; MSIE 6.0; Windows NT 5.1)rnrn");
while (!feof($content)) {
$tp.=fgets($content, 128);
if (strstr($tp,"200 OK")){ //여기서 한 번만 설명하겠습니다. 헤더의 첫 번째 줄은 일반적으로 요청된 파일의 상태입니다. 자세한 내용은 HTTP 1.1 상태 코드 및 해당 의미를 참조하세요. hi.baidu.com/110911/blog/item/21f20d2475af812ed50742c5.html 이는 일반적인 파일 요청 상태이므로 직접 리디렉션하면 됩니다. 다른 상태에서 프로그램을 계속 실행합니다.
header("Location:$url");
die();
}
}
//302 리디렉션, 대부분의 핫링크 방지 시스템은 리퍼러를 먼저 확인한 다음, 주소가 정확하면 실제 주소로 전환합니다. 다음은 실제 주소를 얻는 것입니다.
$arr=explode("n",$tp);
$arr1=explode("Location: ",$tp);//Location 이후의 실시간 주소 분해
$arr2=explode ("n",$arr1[1]);
header('Content-Type:application/force-download');//강제 다운로드
header("location:".$arr2[0]) ;//대상 주소로 리디렉션
die();
?>
위 내용은 리퍼러 내용을 포함하여 리퍼러 PHP 가짜 리퍼러 예제 코드를 소개한 내용입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.