apache认证的问题

我的apache配置了 basic auth.
假定我的ip地址是 111.111.111.111

/var/www/html/remote.html
<p>it is a test</p>

curl -u xxxx:xxxx -I http://111.111.111.111/remote...
获得这样的输出

HTTP/1.1 200 OK
Date: Fri, 07 Sep 2018 03:26:06 GMT
Server: Apache/2.4.6 (CentOS)
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Authorization,DNT,User-Agent,Keep-Alive,Content-Type,accept,origin,X-Requested-With
Last-Modified: Fri, 07 Sep 2018 03:22:41 GMT
ETag: "b2-5753f8537e26c"
Accept-Ranges: bytes
Content-Length: 178
Content-Type: text/html; charset=UTF-8

为何在浏览器中输入http://111.111.111.111/remote...
不能直接显示remote.html
它会调出认证窗口?

图片描述

阅读 1.5k
1 个回答

因为你没有传密码啊, curl -u参数后的xxx:xxx是用户名和密码. 如果你直接把用户名和密码传过去也可以直接进入页面的.

你可以这样在浏览器里输入

http://xxx:xxx@111.111.111.111/remote.html

这种方式浏览器会把用户名和密码转成 HTTP头: Authorization, 虽然经过变换,但仍算是明文传输,是不安全的, 这也是为啥称其这Basic的原因.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进