什么是防止一个网站的某些目录被直接访问的最佳方式?(what is the best way to

2019-09-22 12:05发布

这是为了防止一个网站的某些目录被直接访问的最佳方式?

1 -创建和放置.htaccess文件中我们要保护并在其中放置下一行的每个目录:

Deny from all

2 -创建和放置index.php文件中,我们要保护并仅放置在它的代码(这将重定向到该网站的主页)的下一行的每个目录:

<?php header("Location: http://" . $_SERVER['HTTP_HOST']); ?>

3-别的东西(是什么?)

Answer 1:

正如在评论中提到的,最安全的方法是将Web服务器的公共文档根目录之外的内容或目录。 这将确保即使一个.htaccess文件被删除的内容将无法送达或如果服务器不允许.htaccess覆盖。

要确定您的文档根目录,你可以只是附和PHP $_SERVER['DOCUMENT_ROOT']变量。 所以,如果你的根是/var/www/html ,你可以创建一个文件夹/var/www/protected_folder和Apache(或其他Web服务器)将永远不会成为它(除非http.conf文件被更改为修改文档根目录文件夹)。

如果该文件夹必须在文档根,然后使用.htaccess文件要么DENY或重定向是一个很好的选择。

作为TerryE提到的,你也可以使用OS级别的文件权限,以拒绝的文件夹的Apache用户访问(设置不同的用户作为所有者,然后对文件夹设置权限700为例)。 如果他们尝试访问该文件夹,他们会得到它,你可能不希望显示(虽然你可以建立一个自定义403错误处理403 Forbidden错误http.confhtaccess )。 根据具体情况,你试图做什么,你可能希望这种方法,因为它也可以让你阻止脚本的访问权限(即PHP include()等),如果你想,作为PHP默认运行的网络服务器用户下。 这种方法的主要缺点是,文件权限往往不迁移过程中保留(如果他们没有做正确)和文件权限可以改变父文件夹的权限时,用递归标志(而这是不可能的,有时会无意中重置有人会在不经意间移动文件夹到文档根)。



文章来源: what is the best way to prevent certain directories of a web site from being directly accessed?