网络请求面板中明文密码可见性的安全性疑问
关于修改密码功能的明文传输安全疑问
我正在开发一套登录系统(当前以修改密码功能为例进行说明);
以下是使用Axios实现修改密码功能的代码示例;
(请勿对当前的localStorage代码发表评论,我知晓其缺陷,此为测试用途,问题仅围绕密码展开)
axios.put( "http://localhost:5001/auth/changePassword", { currentPassword: password.currentPassword, newPassword: password.newPassword, }, { headers: { accessToken: localStorage.getItem('accessToken') }, } ) .then((response) => { if (response.data.error) { alert(response.data.error) } else { alert(response.data.message) } })
我在网络面板的请求标签页中能看到明文形式的密码,这让我感到不安,是否存在未授权人员以类似方式查看密码的可能?我已在服务器端实现了哈希处理,也配置了认证令牌等机制,但明文密码如此轻易可见,这是否真的存在安全问题?
这确实存在安全风险,具体原因和解决办法如下:
- 若你使用HTTP协议传输请求,整个数据包(包括明文密码)在网络中是未加密的,任何处于传输路径上的攻击者(比如公共WiFi监听者、运营商节点)都能轻松捕获并读取密码。
- 服务器端的哈希处理只解决了密码存储阶段的安全问题,传输过程中密码已经暴露的话,攻击者不需要等服务器处理,就能拿到明文密码直接登录账号,或者去其他平台撞库。
核心解决办法是启用HTTPS协议:
- HTTPS会通过TLS加密整个请求,包括请求体里的密码,即使数据包被捕获,攻击者看到的也是加密后的乱码,无法还原明文。
- 启用HTTPS后,浏览器网络面板里的请求内容也会处于加密状态,不会直接显示明文密码,从根源上解决传输阶段的明文暴露问题。
内容的提问来源于stack exchange,提问作者vornies
相关产品推荐
相关产品推荐

