Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何保护包含php页面的子文件夹_Php_.htpasswd - Fatal编程技术网

如何保护包含php页面的子文件夹

如何保护包含php页面的子文件夹,php,.htpasswd,Php,.htpasswd,我已经为我的网站创建了一个子域,我将使用它来存储所有重要的脚本,包括php和javascript。我想保护那里的所有东西,这样就不能通过网络浏览来访问 我试过了。htpasswd。但是当调用页面来执行该功能时,每次都需要密码 您可以说文件夹可以被保护,但它使脚本无法工作,因为访问需要密码 有更好的选择吗?您可以始终使用.htaccess的拒绝所有人 请参见将PHP文件置于web根目录之外,并让服务器通过文件路径访问/包含/要求它们。我自己的私有脚本位于“private”文件夹中,该文件夹与/va

我已经为我的网站创建了一个子域,我将使用它来存储所有重要的脚本,包括php和javascript。我想保护那里的所有东西,这样就不能通过网络浏览来访问

我试过了。htpasswd。但是当调用页面来执行该功能时,每次都需要密码

您可以说文件夹可以被保护,但它使脚本无法工作,因为访问需要密码


有更好的选择吗?

您可以始终使用
.htaccess
拒绝所有人


请参见将PHP文件置于web根目录之外,并让服务器通过文件路径访问/包含/要求它们。我自己的私有脚本位于“private”文件夹中,该文件夹与
/var/www/
目录位于同一目录中,可通过以下路径访问:
include'../private/script.php'


但是,这对JavaScript不起作用(可能除了server0side JavaScript),因为在使用它之前需要用户/客户端访问它。如果它不能被访问,它就不能被使用,这使得它有些毫无意义。为了确保JS的安全性,不要将任何私有内容放入JavaScript中,这是唯一的方法;然后清理从JavaScript获取的任何输入。

我喜欢使用一个包含IP地址的范围来限制访问。这个问题不清楚,所以我不确定你的意思是否是这样,但这是一个例子:

RewriteEngine on
RewriteCond %{REMOTE_HOST} !^XXX\.XXX\.XXX\.XXX
RewriteRule ^(.*) / [R=302,L]
将其添加到要保护的文件夹中的.htaccess文件中,用您的IP地址替换XXX.XXX.XXX.XXX,除您之外的任何人都将被重定向

对于非常受限的区域,您可能也需要密码

编辑:

代替冗长的评论

在发出“AJAX”请求时,客户端脚本的访问权限不应大于对公共可访问文件发出的任何标准请求。如果没有更多关于“为什么”的信息,要提供帮助是不容易的。将PHP内容存储在文档根目录之外可能是一种方法,但是这些内容只能从服务器端(例如PHP)访问


您可以对可访问的页面进行XMLHttpRequest,该页面可以访问存储在非公共位置的文件。e、 例如,使用绝对路径/var/private/,根据需要进行调整,或者使用例如./private遍历目录结构,这意味着根目录可能位于更高的一个目录/var/www.

当您无法访问javascript代码时,您希望如何执行它?!对于PHP脚本:如果您不想让它们公开,请不要将它们放在可公开访问的文件夹中。^这也是一个方便的技巧,可用于网站的实时编辑或大修(为每个人启用重写条件,但在您进行更改时)。您好,谢谢您的回答,但我认为您误解了。让我再解释一下。我制作了一个ajax脚本,它将调用php页面来做一些事情。我把php文件放在一个文件夹中。我希望它得到保护。但是当我使用.htpasswd时。该文件夹受保护,但会使php脚本停止工作。因为每次ajax调用这个php文件…它都需要密码。我不使用我的pc作为服务器。你为什么建议我输入ip地址?或者你可以说,我想在不破坏php文件功能的情况下保护这个文件夹。我想把php放在一边,因为我担心有人偷了它…也就是说…我认为你的解决方案与David Thomas是一样的。我正试图联系我的web服务器的所有者以了解如何连接它:)在我进行编辑之前,我看到了另一个答案,但我会使用相同的虚拟路径说同样的答案:)。我想让你去做吧。祝你好运,纽约快乐。谢谢。你的意思是,如果我使用这种方法,php也可以吗?我已经用spefify../provate/script.php尝试过了,但没有成功。。我还尝试了/home/user/private/script,但不起作用。当您需要与您的web主机讨论将文件放在何处以将其保留在web根目录之外,以及如何在文件存在时访问这些文件时,我将立即与他们联系,并在其工作后立即给出答案:)谢谢..但问题是php脚本停止工作,因为这种保护。文件夹受保护,但脚本不工作。:S