我有一个网站从某些PHP文件中提取数据,以便在网站上显示。但是,为了保护我的数据以供其他人使用,我希望保护我的PHP文件被crawler,bot等调用以收集数据。
我通过检查引荐网址阻止了它,但这可以很容易地绕过。那么,有没有其他方法来保护我的数据。我希望只有我的网站可以调用这些文件。
谢谢!
答案 0 :(得分:1)
在php文件的顶部添加Basic HTTP authentication:
if ( !isset($_SERVER['PHP_AUTH_USER']) ||
!isset($_SERVER['PHP_AUTH_PW']) ||
!($_SERVER['PHP_AUTH_USER'] == 'user' && $_SERVER['PHP_AUTH_PW'] == 'pw'))) {
header('WWW-Authenticate: Basic realm="Mirkwood"');
header('HTTP/1.0 401 Unauthorized');
die();
}
答案 1 :(得分:1)
如果您有Apache Web服务器并且在站点的根目录中,则创建一个.htaccess文件(点htaccess,没有后缀)。
尝试使用此语法来阻止访问特定文件类型:
<FilesMatch "\.(htaccess|htpasswd|ini|php)$">
Order Allow,Deny
Deny from all
</FilesMatch>
另一种方法是在所有非索引的php文件中你可以包含这样的内容:
在index.php中,添加如下访问值:
$access = 'my_value';
在每个其他文件中,包括此检查,甚至在php回显单个字节之前:
if(empty($access)) {
header("location:index.php");
die();
}
答案 2 :(得分:1)
我有一个网站从某些PHP文件中提取数据,以便在网站上显示。
将包含数据的文件移到文档根目录之外。假设PHP文件刚刚被docroot中的另一个文件访问。
答案 3 :(得分:0)
正如DaveRandom所建议的那样,我最终使用了基于cookie的身份验证技术来避免其他网站调用PHP。
服务器首先为每个有效客户端设置访问代码。在我的PHP文件的开头检查此访问代码。
Cookie设置的最长时间限制为5小时,cookie在窗口关闭时销毁。这对我来说非常好。
请注意这部分是否有任何故障!!