禁止从浏览器内访问网站目录列表的两个方法

虚拟主机中有WordPress、Discuz!网站,无意中发现,在浏览器中输入网站某个目录网址,可以直接打开这个网站的目录,里面是文件列表,也就是文件索引页面,如下图所示:

图片丨从浏览器内可以看到网站目录文件
图片丨从浏览器内可以看到网站目录文件列表

这种情况有极大的安全隐患,会被黑客轻而易举了解网站的主题模板、插件以及各种文件情况,使得网站文件漏洞轻易呈现给他们用来攻击、挂马植入病毒等。

即使没有以上的安全问题,也会让他人了解网站目录结构,导致文件及图片被整站下载复制。因此应该马上解决这个问题。

禁止从浏览器内直接打开网站目录浏览的方法有哪些呢?有效的思路及方法有很多,比如通过主机设置、htaccess文件、index.htm、index.php等。经过筛选试用,发现用以下1-2个方法就可以完全解决这个问题。

方法一、利用 .htaccess文件禁用WordPress、Discuz!网站的目录浏览

将根目录中的 .htaccess下载到电脑中,如果没有该文件,是被隐藏了,可以在cPanel管理面板的右上角,找到“设置”按钮并点击,再选择“显示隐藏文件”即可显示。

使用记事本等软件打开.htaccess文件,在最后一行,加入一行以下代码:

# 禁用目录浏览代码
Options -Indexes

禁用目录浏览代码

Options -Indexes

然后将该文件上传覆盖原文件。如果在电脑中文件名不显示前面的 . ,可以先上传,在主机内通过修改文件名添加上。

这样再打开网站目录,会显示:

图片丨拒绝访问服务器上文件403错误提示
图片丨拒绝访问服务器上文件403错误提示

403
Forbidden
Access to this resource on the server is denied!

拒绝访问服务器上的该资源!

有时候,个别子目录下还有自己的.htaccess文件,这会导致在网站根目录该文件中添加的代码失效,可以按刚才的步骤,再将子目录中的.htaccess文件下载添加以上代码。

方法二、添加index.htm、index.html或index.php

如果您自己创建了网站子目录,有时候会发现还是可以在浏览器中直接打开目录浏览,上面方法一的代码对自定义的目录并未生效。

通常出现这种情况的原因是,创建的目录内自动生成了.htaccess文件,按照方法一添加代码就可以解决了。也可以用以下方法解决。

实际上,浏览器中能够直接打开网站目录文件列表的原因,是该目录中缺少一个index.htm或index.php、index.html默认网页文件。如果有这个文件,打开该目录时,会直接打开这个网页,而不是网站文件索引列表。

因此,可以直接创建一个空白的默认网页文件上传到该目录,这样再打开目录时会在浏览器中显示一个空白的网页。

具体方法是,先创建一个txt文本文件,将名称改为index.htm、index.html或index.php即可,文件内保持空白。

至于选择哪个网页文件后缀,看看网站其他目录内的默认首页文件是什么后缀就使用什么。

让index.htm、index.html或index.php默认网页自动跳转到其他网页的方法

上面方法二是使用一个空白的默认首页文件,来达到禁止访问网站目录的目的。如果不想显示为一个空白网页,可以在该index.htm、index.html或index.php中添加几行简单的代码,让网页自动跳转到首页或者其他页面。

使用记事本打开空白的index.htm、index.html或index.php文件,在里面添加以下代码即可:

<!DOCTYPEhtml>
<html>
     <head>
          <metacharset="UTF-8">
          <meta http-equiv="refresh" content="0.1;url=https://dayapai.com">
          <title></title>
     </head>
     <body>
     </body>
</html>

这样在浏览器中打开网站目录时,会自动打开所设置的页面。

©转载请注明出处及链接:大雅派 » 禁止从浏览器内访问网站目录列表的两个方法

赞 (1)