2011-05-25 97 views
7

我已经将脚本上传到用户服务器。我不希望别人通过浏览器访问此脚本,但是,我希望脚本能够访问它。使脚本可以访问文件,但不能访问用户

将文件放置在public_html之外不是一个选项,因为它确实需要在public_html中。有任何想法吗???谢谢。

+0

它为什么需要在public_html? – Fosco 2011-05-25 18:07:19

+0

@Fosco OP可能在一些服务器上,只有'public_html'用户权限 – Neal 2011-05-25 18:09:19

回答

15

把一些变量之前,包括所以你知道它被称为:

的index.php:

$open = true; 
include 'open.php'; 

open.php:

<?php 
    if(isset($open) && $open){ 
     //do what it is supposed to do 
    } 
    else { 
     header("HTTP/1.1 403 Forbidden"); 
     exit; 
    } 
?> 
+0

我打算把它投票成这样,现在你已经发布了它,我想这就是它们的意义(但是有点模糊)。与phpBB这样的大型项目类似,这将允许其他脚本包含它,但不能直接访问。 – 2011-05-25 18:10:30

+0

+1整洁的解决方案。 – Fosco 2011-05-25 18:16:03

+0

我一直这样做..非常整洁有效的解决方案 – 2011-05-25 18:19:14

1

使用户可以访问文件或sripts几乎是同义词。没有另一个你不会得到一个。用户可以通过总是模仿脚本。

2

您可以使路径只能访问经过身份验证的客户端,并仅向您的脚本提供凭据。

如果是通过浏览器来访问,那么用户和脚本都是“客户”,你无法区分它们(除了使用像用户代理嗅探等脆弱的招数)

4

如果脚本你的意思是服务器端,可以关注的文件夹中添加一个.htaccess文件:

deny from all 

然而,如果通过脚本你的意思是客户端,那么最终你不能。

1

您想要远离用户的包含的php文件可以放在您的DOCUMENT_ROOT之外,并且仍然包含在其他脚本中。

这种方式包括PHP文件永远不会被您的网络用户访问。事实上,这是存储数据库连接凭证的一种很好的安全方式。

0

最好的办法是把它放在public_html目录之外。如果只有您的脚本将访问它,那么HAS不应该存在于public_html目录中。

相关问题