0
A
回答
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']
您有两种选择。您可以编写一个服务于该文件的PHP脚本(http://teddy.fr/blog/how-serve-big-files-through-php)并存储使用PHP的引用程序。
或者,Web服务器保留所有访问文件的日志。您可以扫描此(结构化)日志以访问您的文件,并将查阅者导出。有几个日志分析项目,如AWStats。
+0
这是一个脚本:http://www.gidforums.com/t-497.html – j13r 2012-04-14 20:53:32
相关问题
- 1. HTTP请求跟踪
- 2. Spring MVC跟踪Http请求
- 3. 的Bittorrent跟踪器请求
- 4. 跟踪XMLHTTP请求结果
- 5. 跟踪改进请求
- 6. 请求跟踪记录器
- 7. 请求跟踪4.4.1与Apache2
- 8. 使用Google Analytics跟踪AJAX请求
- 9. 跟踪应用程序的HTTP请求
- 10. 使用Node.js跟踪XMLHTTP请求
- 11. 跟踪弹簧引导应用程序中的所有请求
- 12. 跟踪每个请求的访问者信息
- 13. 我可以跟踪来自'index.php'的请求页面/文件吗?
- 14. 跟踪文件
- 15. 跟踪用户对用户的应用程序请求(邀请)
- 16. BitTorrent跟踪器请求,info_hash格式
- 17. 前往:跟踪POST请求进度
- 18. 发送jdwp跟踪请求失败!
- 19. IIS7失败请求跟踪权限
- 20. 在页面上跟踪Ajax请求
- 21. WCF只跟踪失败的请求?
- 22. 跟踪Websphere中的HTTP请求
- 23. node.js的socket.io - 跟踪请求的URL
- 24. CustomTraceListener类实现跟踪HTTP请求
- 25. C#跟踪https肥皂请求?
- 26. GA在ajax请求上跟踪代码?
- 27. 如何跟踪ScriptService WebService请求?
- 28. 重定向之前的跟踪请求
- 29. Guice请求跟踪请求工作流的范围
- 30. 跟踪邀请应用Facebook
你是什么意思“从不同的域请求”是什么意思? – 2012-04-14 20:43:56
[你有什么试过](http://mattgemmell.com/2008/12/08/what-have-you-tried/)? – ghoti 2012-04-15 22:15:31