阻止某些网站访问某个文件

时间:2011-02-04 04:27:48

标签: php

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

4 个答案:

答案 0 :(得分:1)

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

你可以尝试这样的事情,假设player.php在你的网络根目录中:

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]

答案 1 :(得分:1)

你最好处理这个问题服务器端,所以PHP是一个不错的选择。您需要检查HTTP referrer标头,看看您是否正在进行热链接。

答案 2 :(得分:1)

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

1)网络服务器

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

RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} badsite\.com [NC]
RewriteRule .* - [F]

这实际上是理想的方式,因为它排除了解释PHP的必要性。

2)PHP

在您的页面中,使用$ _SERVER ['HTTP_REFERER'](如果没有引荐来源,则可能无法设置)并在字符串中搜索相关域。

这是第二好的,如果你不能改变Apache配置,它可能是你唯一的选择。

3)Javascript

并不真正阻止访问任何内容,因为检查发生在客户端(他们在运行之前已经下载了player.php和Javascript本身)。如果他们直接访问视频或其他任何内容,它将无法阻止他们获取该文件。您将使用document.referrer并像PHP示例一样搜索域。

答案 3 :(得分:-1)

使用Apache mod-rewrite和/或.htaccess可以做很多技巧