Fork me on GitHub
Fork me on GitHub

访问https,抓包是明文的

Nginx启用了https,但是测试部门在使用fiddler工具抓包时,发现能抓到用户账号和密码。但是我自己在服务端用tcpdump抓包却抓不到明文账号和密码。

现象

测试反馈的问题:

解释

测试人员是在本地打开fiddler工具抓包,同时打开本地浏览器,输入应用地址,然后输入用户账号和密码,然后点击登录。在这个操作过程中,其实fiddler把测试人员输入账号和密码也给录制下来了,是客户端上传的明文账号和密码,因此也看到了明文账号和密码。这个看到的账号密码并不是https传输过程中看到的账号名和密码。
密文是针对https两端以外其他路径而言,作为https链接的两端,自然可以看到明文。这就好比,你自己打开一个网站,然后输入用户名和密码,你的朋友在你旁边看着你输入账号和密码,他是肯定能看见明文账号和密码的。
Https保证的是传输过程中第三方抓包看到的是密文。客户端和服务端,无论如何都可以拿到明文。在自己本地抓包不能说明什么。

示例

码云 网站为例,不需要抓包工具,打开F12就可以看到明文账号和密码。

更合理办法

更安全的方式是,在写代码时,先将用户输入的账号和密码加密,然后再发到后台校验。