ホームページ >php教程 >php手册 >PHP偽リファラーのサンプルコード

PHP偽リファラーのサンプルコード

WBOY
WBOYオリジナル
2016-06-13 12:26:211287ブラウズ

完全なプログラムはここで直接提供されます。特定のアプリケーションに合わせて自分で変更できます。
ここで挙げた例は非常に単純です。実際、この例から多くのアプリケーションを開発できます。たとえば、実際の 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");
}
}

//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();
?>


このプログラムは、リファラーを使用して他の特別なメソッドのみを使用できます。これはホットリンクです。アンチホットリンクの場合、これはおそらく適用されません。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。