서버에 파일이 있습니다 (예 : "file.txt"). 다른 도메인에서 요청할 수 있습니다.추적 파일 요청 참조 자
이 파일이 요청 된 도메인에서 어떤 방법으로 추적하여이 데이터를 어딘가에 저장할 수 있습니까?
감사합니다.
서버에 파일이 있습니다 (예 : "file.txt"). 다른 도메인에서 요청할 수 있습니다.추적 파일 요청 참조 자
이 파일이 요청 된 도메인에서 어떤 방법으로 추적하여이 데이터를 어딘가에 저장할 수 있습니까?
감사합니다.
... 난 당신이 파일을로드 할 수 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']);
}
예, 그냥 리퍼러를 받아서 저장하십시오. 변수는 $ _SERVER [ 'HTTP_REFERER']
두 가지가 있습니다. PHP (http://teddy.fr/blog/how-serve-big-files-through-php)를 제공하는 PHP 스크립트를 작성하고 PHP를 사용하여 해당 referer를 저장하십시오.
또는 웹 서버는 액세스 한 모든 파일의 로그를 유지합니다. 이 (구조화 된) 로그를 스캔하여 파일에 액세스하고 리퍼러를 확보 할 수 있습니다. AWStats와 같은 여러 로그 분석 프로젝트가 있습니다. 나는 도메인 이름이 당신의 최선의 선택이 될 것이라고 생각하지 않는다
은 하나의 스크립트입니다 : http://www.gidforums.com/t-497.html – j13r
를 시도? –
[무엇을 시도 했습니까?] (http://mattgemmell.com/2008/12/08/what-have-you-tried/)? 여기에서 – ghoti