如何在Apache、Nginx、WordPress、托管中保护页面密码?

您可能有一些需要用密码保护的敏感页面。这也被称为基本身份验证。

好消息是,这是可行的,并且非常简单。

为什么要用密码保护网页?

好吧,原因可能有很多,包括:

  • 页面上包含敏感数据
  • 页面尚未准备好,您不想将其公开显示,但想与某人共享

无论是什么原因,让我们来探讨如何保护。

要求

让我们举个例子,我想要保护 lab.yaoweibin.com 上的 /client,这意味着如果有人访问 https://lab.yaoweibin.com/client,应该提示输入密码。

Apache

我们先从 Apache 开始。

首先,我们需要创建一个密码文件,其中将存储所有的凭据。文件名将为 .htpasswd,并且您可以将其放置在服务器的任何位置。我将在 /etc/httpd/conf 文件夹下创建它

  • 您可以使用 touch 命令创建该文件
touch /etc/httpd/conf/.htpasswd
  • 让我们添加一个允许访问 /client 的用户。我们需要使用 htpasswd 命令来完成。
htpasswd /etc/httpd/conf/.htpasswd yaoweibin
  • 最后一个部分 yaoweibin 是用户名。将其更改为您想要的内容,然后按 Enter 键。
  • 输入密码,您将看到用户已添加的确认消息。
[root@lab html]# htpasswd /etc/httpd/conf/.htpasswd yaoweibin
New password: 
Re-type new password: 
Adding password for user yaoweibin
[root@lab html]#

如果您查看该文件,您将注意到密码以加密格式存储。这很好!

[root@lab html]# cat /etc/httpd/conf/.htpasswd 
yaoweibin:$apr1$EHvl0Bc5$nh4u0w3.Cj3wzPT7XUXqW1
[root@lab html]#

接下来,我们需要告诉 Apache 保护我们想要的 URI。

  • 修改 httpd.conf 文件或您用于 Apache 实例的配置文件。我使用默认安装,因此我使用 /etc/httpd/conf/httpd.conf
  • 在文件中的任何位置添加以下内容

Options Indexes FollowSymLinks
AuthType Basic
AuthName "Protected Content for Client"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user

如果您已经有 /var/www/html/client Directory 指令,那么您应该仅在现有指令中添加以下内容,而不是添加一个新的部分。

AuthType Basic
AuthName "Protected Content"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user
  • 重启 Apache
service httpd restart
  • 尝试访问 /client 页面,应该会要求输入密码。

  • 输入之前设置的凭据以查看内容。

想要更炫酷的方法?

当然,您也可以通过 .htaccess 文件实现基本身份验证。您仍然需要使用上面解释的 htpasswd 生成凭据。完成后,您可以将以下内容添加到相应文件夹的 .htaccess 文件中。

AuthType Basic
AuthName "Protected Content"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user

美妙的是,您无需重新启动 Apache。

Nginx

让我们按照以下步骤在 Nginx 中实现基本身份验证。

我们将使用Apache Utils来生成凭证。如果服务器没有安装Apache HTTP,则需要单独安装utils,如下所示。如果不确定,可以执行htpasswd查看是否有效。如果没有,则需要安装它。

CentOS/RHEL 8
dnf install httpd-tools

CentOS/RHEL 7
yum install httpd-tools

Ubuntu
apt-get install apache2-utils

让我们像在Apache中那样创建凭证。

htpasswd -c /etc/nginx/.htpasswd chandan

不要忘记用真实的用户名替换chandan。

接下来,我们需要配置Nginx,以便通过密码限制特定的URI。

假设我们需要保护/admin URI。

在nginx.conf或其他活动Nginx配置文件中添加以下内容。

location /admin {
auth_basic “Admin Area”;
auth_basic_user_file /etc/nginx/.htpasswd;
}

重新启动Nginx

如果您必须限制通过Nginx提供的整个网站怎么办?

很简单!

在nginx.conf或活动配置文件的location / {指令下添加以下内容

auth_basic “Admin Area”;
auth_basic_user_file /etc/nginx/.htpasswd;

SiteGround

托管平台已经发展。有许多提供方便工具的平台,其中之一是。

如果您使用SiteGround托管您的网站,您可以轻松地从他们的管理控制台保护URL。假设您正在使用并且需要保护/wp-admin。

登录到SiteGround并转到需要启用基本身份验证的站点。

单击Security >> Protected URLs >> Users

输入名称和密码以创建凭证

接下来,我们将使用刚刚创建的凭证保护wp-admin。

转到URLs选项卡

在路径中输入wp-admin并点击保护

单击Manage Access并分配刚刚创建的用户

尝试访问页面,SiteGround将提示您输入凭证。

很简单,不是吗?

WordPress

使用WordPress并希望对特定帖子、页面、类别、角色或整个站点进行密码保护吗?

当然可以!

见(Password Protect WordPress Plugin)

安装插件并根据您希望保护WordPress资源的方式进行配置。这适用于如、Beaver等。

或者,如果您需要一个简单的受密码保护的帖子或页面,那么您可以利用内置的WP功能。您不需要任何插件。

转到您想要启用密码的帖子或页面。

在发布部分下,单击可见性: 公共旁边的编辑

选择密码保护并输入密码。

单击,OK,设置完成!

需要更多保护WordPress的方法?看看此链接。

cPanel

如果您在,则很可能会有cPanel。好消息是cPanel提供了一个名为Directory Privacy的实用程序;在那里,您可以为目录设置密码。

登录到cPanel

搜索Directory Privacy

选择要保护的文件夹。像下面这样,我选择了一个名为的文件夹,它位于下面。

创建应被允许的用户并保存

完成后,您会注意到文件夹上有一个锁

好了,就这样。该目录现在已经受到密码保护了。如你上面所见,我已经在 A2 hosting 上进行了测试,效果非常好。

结论

希望上述内容对你有所帮助,可以使用基本身份验证来保护特定的URI和文件夹。如果你正在寻找全面的网站安全性解决方案,那么你应该考虑实施 WAF

类似文章