如何在php中阻止用户访问文件夹?
我已经到处搜索过了,但是找不到。我想知道的是我有一个名为temp like的文件夹 ->公共网页 -->临时工如何在php中阻止用户访问文件夹?,php,apache,.htaccess,Php,Apache,.htaccess,我已经到处搜索过了,但是找不到。我想知道的是我有一个名为temp like的文件夹 ->公共网页 -->临时工 现在,我如何限制用户从外部服务器访问它,就像有人在php脚本中包含它时出错一样?我想通过php而不是通过.htaccess或apache来实现,我尝试了chmod,但它仅从本地服务器限制了整个网站。我也做了常量的事情,但是如果有人知道常量名称,那么他仍然可以提取数据。您不能包含远程PHP文件。如果allow\u furl\u open和allow\u url\u include设置为t
现在,我如何限制用户从外部服务器访问它,就像有人在php脚本中包含它时出错一样?我想通过php而不是通过.htaccess或apache来实现,我尝试了chmod,但它仅从本地服务器限制了整个网站。我也做了常量的事情,但是如果有人知道常量名称,那么他仍然可以提取数据。您不能包含远程PHP文件。如果
allow\u furl\u open
和allow\u url\u include
设置为true并使用include('http://yoursite/temp/yourfile.php”)
,则包含的是该PHP文件的输出。不是PHP源代码本身
因此,当您有一个包含以下内容的php文件时:
<?php
$password = "secret";
echo "Test";
?>
如果有人远程包含该文件,他们只会返回“Test”,这不是有效的PHP语法。他们将无法看到文件的内容,只能看到输出的内容。该文件在远程(或在本例中为您的)服务器上运行。任何包含它的人都会在该服务器上执行后获得输出
所以,如果(!isset(一些神奇的常数))死了(“走开!”),你就不必像
那样去做任何事情了,这很愚蠢,但不幸的是,我在网上看到了这一切。htaccess,我知道的唯一方法。。。不要认为使用PHP是可能的
<Directory /public_html/temp>
order allow,deny
deny from all
</Directory>
命令允许,拒绝
全盘否定
将一个空的“index.html”文件放在“temp”文件夹中。这会阻止用户查看该文件夹的内容。这基本上使得用户无法绕过它
至于在脚本中包含它,人们必须知道其中包含哪些文件才能在脚本中使用它。我不清楚您想要实现什么。如果您想授予本地访问权限,但限制远程访问,您应该能够使用chmod和chown来实现这一点。如何“在PHP脚本中导入文件夹”?通常,你会用.htaccess保护一个文件夹——PHP不能保护一个文件夹,除非它只是一个通过PHP生成的虚拟文件夹。你说的“我已经做了固定的事情”是什么意思?我也不明白您在尝试什么,但如果您希望能够包含目录中的php文件,但不希望通过url提供这些文件,则有许多解决方案。。最简单的方法之一(但也不是基于php的)是在web根目录之外获取该目录ok抱歉,我的不好好好,让我解释一下,我们通过添加一个简单的include('script.php')来包含一个php脚本。现在,如果用户添加include('url.com/temp/script.php'),就可以访问任何文件,而我一直在做的就是添加define('Script',TRUE);在我们将包含脚本的地方,我们将包含的脚本将具有以下内容:(!defined('Script'){echo“Go back”}现在我想要的是,本地服务器可以访问所有文件,如果任何人出了问题,我们怎么能这样做呢?但我只想通过php访问。你的意思是,就像有一个mysql查询一样:$q=mysql\u query(“SELECT*FROM user”),$con)或die(mysql\u error();$user=mysql\u fetch\u assoc($q);现在没有人可以从$user数组中获取数据了,对吗?是的,您的PHP代码和数据通常不能从外部包含或访问。但是,退出本应仅在受控环境中执行的PHP文件(可能包含在index.PHP或类似文件中)并不愚蠢。根据代码的编写方式,如果在没有受控环境的情况下执行,它可能会做坏事。你是对的,但如果你需要依赖这样的检查,我认为是时候进行完全重写了。而不是由其他人而不是原程序员进行重写。