防止服务器端脚本直接访问URL

时间:2014-06-12 19:06:03

标签: apache .htaccess hotlinking

有一个用php编写的服务器端脚本(比如backend_file.php)或coldfusion(比如backend_file.cfm)。

让我们说,我正在使用Apache,我有一个示例Web文件夹(在我的Localhost上),如:

  • backend_file.php
  • 的index.php

当从浏览器直接命中时,是否可以限制backend_file.php的访问?

但是,index.php应该能够访问backend_file.php吗?

注意:可通过直接URL访问访问index.php。

我提到index.php应该能够访问backend_file.php,因为它发出ajax帖子或者获取从backend_file.php获取信息的请求?

2 个答案:

答案 0 :(得分:0)

当请求某个文件时,您可以使用mod_rewrite发送禁用代码。将它放在文档根目录中的.htaccess文件中:

RewriteRule ^backend_file\.php$ - [F,L]

或者,您可以使用Deny指令。将.htaccess文件放在包含此文件的目录中,然后添加:

<Files "backend_file.php">
  Deny from all
</Files>

答案 1 :(得分:0)

您需要依赖HTTP_REFERER,因为您要HTTP请求index.php后端文件。你可以使用这样的规则:

RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.com/index\.php [NC] 
RewriteRule ^backend_file\.php$ - [F,NC]

domain.com替换为您的实际域名。