防止访问 apache 服务器上的目录

防止访问 apache 服务器上的目录

在 Ubuntu 18.04 上运行 Apache:

大部分情况下一切都运行良好,但我似乎无法弄清楚如何阻止人们访问目录而不阻止网站访问同一目录。

例子

例如,如果我的文件树是 var/www/website/css 和 var/www/website/html,而文档根目录是 var/www/website/html,则 html 文件没有任何 css。如果我将它们放在同一个目录中,我可以从网站浏览 css 目录,这是我不想要的,我认为这是一个安全风险。图像等也是如此。我尝试使用 .htaccess 来阻止 Web 访问文件夹,但随后我遇到了同样的问题,html 无法访问 css、图像等。我遗漏了什么吗?我一直在 .htaccess 文件中使用“deny from all”,因为这是我从文档中了解到的

但是我需要在其中添加其他内容吗?我需要使用 php 吗?我之前从未运行过 Web 服务器,所以我只是边学边做。

编辑:

好的,我已经知道如何删除对索引页的访问权限,例如 example.com/images/ 给出 403。(将 conf 文件中的目录部分更改为选项 -Indexes)

这很好,但我仍然可以访问特定文件路径,无论有没有 .htaccess 文件,例如 example.com/images/image.png。有什么办法可以阻止这种情况吗?

答案1

如果您想在网站中使用 CSS 或图像文件,则必须允许访问者访问它们。如果访问者的浏览器无法下载 CSS 文件,则无法将 CSS 应用于页面。如果无法下载图像,则无法显示图像。这不是安全风险,而是网络的运作方式。

一个完全不同的问题是你是否允许访客浏览文件夹,即发现其中存在哪些文件。这由Apache 配置中的DirectoryIndex和指令控制。如果您为 CSS 和图像文件夹设置,则浏览 CSS 或图像文件夹的访问者将看不到文件列表,而是会收到“权限被拒绝”错误页面。因此,访问者只能访问他们知道存在的文件,例如因为您的网页包含指向这些文件的链接,这通常正是您想要的。Options [+|-]IndexesOptions -Indexes

相关内容