HTTP Basic Auth也有用武之地

HTTP Basic Authentication是HTTP协议的一部分,第一次请求的时候,服务器会返回401,用户输入用户名和密码后,验证通过则继续访问,反之还是401。
首页 新闻资讯 行业资讯 HTTP Basic Auth也有用武之地

 [[337600]]

本文转载自微信公众号「虞大胆的叽叽喳喳」,作者虞大胆。转载本文请联系虞大胆的叽叽喳喳公众号。  

昨天《聊聊安全》说到了auth验证,其实在nginx中支持非常简单。

HTTP Basic  Authentication是HTTP协议的一部分,第一次请求的时候,服务器会返回401,用户输入用户名和密码后,验证通过则继续访问,反之还是401。

那Nginx如何支持它呢?

首先要在服务器上保存密钥文件,可以使用httpd-tools工具(以centos发行版为例),首先安装:

复制

yum install httpd-tools
  • 1.

然后生成:

复制

htpasswd -c /etc/.htpasswd user1 htpasswd  /etc/.htpasswd user2
  • 1.

  • 2.

如果要修改密码:

复制

htpasswd -b /etc/.htpasswd user1 passwd
  • 1.

其次在nginx service或者location中配置:

复制

location /api {     auth_basic   "Admin";     auth_basic_user_file /etc/.htpasswd;  }
  • 1.

  • 2.

  • 3.

  • 4.

是不是很简单,有几个小收获:

1:验证通过后,浏览器会将验证信息保存起来,至于什么时候失效目前并不可知。

2:修改服务器文件用户名密码后,客户端会再次要求验证。

3:在多个vhost上配置的密钥文件是同一个,则客户访问多个vhost,只要验证一次,看上去是个小缺陷,但对用户来说却非常方便。

对于内部系统来说,黑白名单设置也非常有用,就看是否符合应用场景,因为很多用户的IP一直在变化,举个例子:

复制

location /api {     deny  192.168.1.2;     allow 192.168.1.1/24;     allow 127.0.0.1;     deny  all; }
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

 

41    2020-08-13 07:54:10    HTTP 协议 nginx