HTTP Basic Auth也有用武之地

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

 [[337600]]

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

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

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

那Nginx如何支持它呢?

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

  1. yum install httpd-tools 

然后生成:

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

如果要修改密码:

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

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

  1. location /api { 
  2.     auth_basic   "Admin"
  3.     auth_basic_user_file /etc/.htpasswd;  

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

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

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

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

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

  1. location /api { 
  2.     deny  192.168.1.2; 
  3.     allow 192.168.1.1/24; 
  4.     allow 127.0.0.1; 
  5.     deny  all

 

责任编辑:武晓燕 来源: 虞大胆的叽叽喳喳
相关推荐

2011-03-14 14:21:47

后关系数据库

2015-08-25 13:20:29

数据科学

2011-07-15 10:03:06

网络服务虚拟应用

2009-02-20 16:02:52

操作系统发展趋势

2021-12-04 05:53:57

Windows 11操作系统微软

2019-11-08 15:27:01

物联网5G人工智能

2021-07-20 13:43:50

自动驾驶雷达技术

2015-02-26 15:11:23

2012-07-09 09:19:33

云计算伦敦奥运会

2016-12-07 13:18:52

Spark架构大数据

2020-08-05 08:38:00

无人机台风技术

2013-02-26 10:32:38

大数据云计算

2021-08-12 06:38:23

CSS SASSLESS

2020-02-20 09:45:35

AI 数据人工智能

2023-07-31 16:17:41

2022-02-28 18:57:28

物联网传感器人工智能

2023-08-16 14:43:31

技术文档软件开发

2012-05-28 10:03:42

超级计算机储存380PB磁带

2022-04-07 16:03:36

JavaScriptTypeScript

2010-01-06 15:19:26

软交换系统
点赞
收藏

51CTO技术栈公众号