如何阻止密码管理器对XHR请求弹出保存密码提示?
问题:避免密码管理器(如LastPass)对公共API Basic Auth请求弹出保存提示
我们在调用外部公共API时需要使用Basic Auth认证,所用账号是无额外权限的公共用户,不存在安全风险,但执行请求时LastPass(目前仅发现该工具存在此问题,Bitwarden和Chrome内置密码管理器无异常)会弹出保存该外部URL认证信息的提示,这会造成用户困惑。我们需要找到让各类密码管理器忽略这类请求的方法。
复现方式
请求代码如下:
(function() { superagent('GET', 'https://httpbin.org/anything') .auth('Username', 'Password') .type('application/json') .then(res => { console.debug('res', res); }) .catch(err => { console.debug('err', err) }); })();
LastPass弹出保存凭据的提示示例:
已尝试的方案及问题
- 尝试使用
username:password@example.com格式的URL拼接认证信息,LastPass不再弹出提示,但API无法识别认证信息。用curl测试该语法可以正常触发认证,但在浏览器中发送请求时,API开发者反馈未收到认证信息,推测是浏览器自动剥离了URL中的认证内容。 - 直接在浏览器地址栏访问该带认证信息的URL时可以正常工作:Firefox会自动生成认证请求头,Chrome不会,但两者均能成功访问API。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

