2012-04-14 11 views
0

"file.txt"のように、サーバー上にファイルがあります。異なるドメインから要求されることがあります。トラックファイルリクエストの参照先

このファイルが要求されたドメインからのどのような方法でも、このデータをどこかに保存できますか?

ありがとうございます。

+1

をお試しください –

+0

[何を試しましたか](http://mattgemmell.com/2008/12/08/what-have-you-tried/)? – ghoti

答えて

1

..私はあなたのファイルをロードするためにIP address for制限

あなたはまた、あなたのファイルを呼び出す正確なスクリプトを確認するために$_SERVER ['HTTP_REFERER']を使用することができますまたは約に固執アドバイスでしょう

あなたは、「異なるドメインから要求された」とはどういう意味ですか?

$allowedReferer = array (
     "http://me.test.com/xxx/bbb/zmy.php?", 
     "https://me.why.com/xxx/bbb/zmy.axpx" , 
     "http://localhost/lab/stockoverflow/" 
); 

$allowedIP = array (
     "192.168.0.1", 
     "192.168.0.1" , 
     "::1" 
); 

$file = "file.pdf"; // its can also be a value form $_GET 

if (! in_array (quickIP(), $allowedIP)) { 
    die ("IP LockDown : " . quickIP()); 
} 

if (! isset ($_SERVER ['HTTP_REFERER'])) { 
    die ("Missing Referer"); 
} 

if (! in_array ($_SERVER ['HTTP_REFERER'] , $allowedReferer)) { 
    die ("Referer Lockdown " . $_SERVER ['HTTP_REFERER']); 
} 

$array = parse_url ($_SERVER ['HTTP_REFERER']); 

header ('Content-type: application/pdf'); 
header ('Content-Disposition: attachment; filename="' . $file . '"'); 
readfile ($file); 

function quickIP() { 
    return (empty ($_SERVER ['HTTP_CLIENT_IP']) ? (empty ($_SERVER ['HTTP_X_FORWARDED_FOR']) ? $_SERVER ['REMOTE_ADDR'] : $_SERVER ['HTTP_X_FORWARDED_FOR']) : $_SERVER ['HTTP_CLIENT_IP']); 
} 
1

はい、リファラーを取得して保存してください。変数は$ _SERVER ['HTTP_REFERER']

2つの選択肢があります。 PHP(http://teddy.fr/blog/how-serve-big-files-through-php)を提供するPHPスクリプトを作成し、PHPを使用してリファラーを保存します。

また、Webサーバーは、アクセスされたすべてのファイルのログを保持します。この(構造化された)ログをスキャンして、ファイルへのアクセスを確認し、リフェラを出すことができます。 AWStatsのようないくつかのログ分析プロジェクトがあります。私は、ドメイン名はあなたの最良の選択肢だろうとは思わない

+0

はここでそれを行うスクリプトです:http://www.gidforums.com/t-497.html – j13r

関連する問題