Php 阻止特定站点访问特定文件

Php 阻止特定站点访问特定文件,php,Php,我有一个player.php文件,它调用视频播放器来播放某个视频。如何阻止某些网站访问此文件并使用它在该网站上嵌入视频。换句话说,我可以在player.php中使用什么代码来阻止某些站点仅访问此文件 如果您使用的是Apache,并且可以访问您的.htaccess文件,我建议您改用它。这是一个极好的资源 假设player.php在您的web根目录中,您可以尝试以下方法: RewriteEngine On RewriteCond %{HTTP_REFERER} ^player\.php.* Rewr

我有一个player.php文件,它调用视频播放器来播放某个视频。如何阻止某些网站访问此文件并使用它在该网站上嵌入视频。换句话说,我可以在player.php中使用什么代码来阻止某些站点仅访问此文件

如果您使用的是Apache,并且可以访问您的
.htaccess
文件,我建议您改用它。这是一个极好的资源

假设player.php在您的web根目录中,您可以尝试以下方法:

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^player\.php.*
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?your-domain\.com/ [NC]
RewriteRule .* http://your-domain.com/please-dont-steal\.php[NC]

使用Apache mod rewrite和/或.htaccess有很多技巧,您最好在服务器端处理这个问题,因此PHP是一个不错的选择。您需要检查标题以查看是否正在进行热链接。

您可以在三个级别上执行此操作

1)Web服务器

例如,如果您在Apache服务器上,请使用.htaccess文件。 这可以通过重写完成,将它们推送到某个虚拟文件或404或任何您喜欢的文件。例如:

RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} badsite\.com [NC]
RewriteRule .* - [F]
这确实是一种理想的方法,因为它不需要解释PHP

2)PHP

在您的页面中,使用$_服务器['HTTP\u REFERER'](如果没有REFERER,则可能不会设置该服务器)并在字符串中搜索有问题的域

这是第二个最佳选择,如果您无法更改Apache配置,这可能是您唯一的选择

3)Javascript

实际上并不阻止对任何内容的访问,因为检查是在客户端进行的(在运行它之前,他们已经下载了player.php和Javascript本身)。如果他们直接去看视频或其他什么,这不会阻止他们获取文件。您可以使用document.referer并像PHP示例一样搜索域