我有一个网站,通过https上的ajax调用完成用户登录.显然,请求包含密码.使用Firefox开发人员工具我注意到我可以检查来自我的页面的任何网络请求,包括请求正文......还有我的密码.我认为该请求是通过https加密的,但开发人员工具仍将其显示为纯文本.我错过了什么吗?如果用户登录公共计算机并忘记注销,则可以使用开发人员工具获取密码.提前感谢您提供的任何帮助.
-麦克风
一切都在设计上运作 - 没有错.
浏览器的开发工具旨在允许用户检查页面中发生的所有事情 - 如果没有该功能,它们将毫无用处.开发工具的网络选项卡在加密之前显示HTTP数据.
在公共计算机方案中,请记住开发工具仅显示在打开工具后发生的网络请求,因此攻击者无法在用户离开您的页面并查看纯文本身份验证请求后打开开发工具.
我可以检查来自我的页面的任何网络请求,包括请求正文
不,你不能 - 这还不是网络流量 - 这是一个 HTTP 数据报,然后在到达 TCP 堆栈之前通过 SSL 层。
如果用户登录公共计算机并忘记注销,任何人都可以使用开发人员工具获取其密码
不,因为除非页面开发人员做了非常愚蠢的事情,否则浏览器不会存储该信息 - 您只能看到它,因为您的浏览器被配置为拦截该信息并临时存储它。但话虽如此,有很多事情可以导致浏览器存储身份验证令牌 - 首先是自动完成和密码管理器(后者的实现质量差异很大,前者几乎没有防止泄露的保护)。身份验证令牌永远不应该作为 GET 参数发送,因此不应该从浏览器历史记录中可见。