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

时间:2011-12-31 14:22:24

标签: php .htpasswd

我为我的网站制作了一个子域名,我将用它来存储所有重要的脚本,包括php和javascript。我想保护那里的evertyhing,以便无法通过网页浏览进行访问。

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

您可以说该文件夹可以受到保护,但它会使脚本无效,因为访问需要密码。

有更好的选择吗?

3 个答案:

答案 0 :(得分:2)

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

但这不适用于JavaScript(可能是server0side JavaSCript除外),因为在使用它之前需要由用户/客户端访问。如果无法访问它,则无法使用,这使得它有点无意义。为了确保JS 的安全性,不要将任何内容置于JavaScript 中,它只是 方式;然后清理从JavaScript中获取的任何输入。

答案 1 :(得分:0)

您始终可以使用.htaccess的{​​{1}}。

参见 this article on .htaccess to learn more

答案 2 :(得分:0)

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

RewriteEngine on
RewriteCond %{REMOTE_HOST} !^XXX\.XXX\.XXX\.XXX
RewriteRule ^(.*) / [R=302,L]

将其添加到您要保护的文件夹中的.htaccess文件中,将XXX.XXX.XXX.XXX替换为您的IP地址,除了您之外的任何人都将被重定向。

你可能也想要一个非常有限的区域的密码。

修改

取代长篇评论。

在发出'AJAX'请求时,客户端脚本不应具有任何比对公共可访问文件发出的标准请求更大的访问权限。没有关于“为什么”你想要的更多信息,帮助并不容易。将PHP内容存储在文档根目录之外可能是要走的路,但那些东西只能从服务器端访问(例如PHP)。

您可以对可访问的页面进行XMLHttpRequest,然后可以访问存储在非公共位置的文件。例如,具有绝对路径/ var / private /,适合于适合,或者通过例如遍历目录结构。 ../private,意思是一个目录更高的位置,你的根可能是/ var / www。