Javascript 使用本机消息在chrome的NTLM弹出窗口中填写用户名和密码
地点: 当我们访问该站点时,会在Javascript 使用本机消息在chrome的NTLM弹出窗口中填写用户名和密码,javascript,asynchronous,google-chrome-extension,webrequest,chrome-native-messaging,Javascript,Asynchronous,Google Chrome Extension,Webrequest,Chrome Native Messaging,地点: 当我们访问该站点时,会在background.js中触发onAuthRequired方法。 根据mdn文档,我们可以使用extraInfoSpec作为blocking传递用户名和密码字段 测试方法: background.js const myCredentials = { username: "me@company.com", password: "zDR$ERHGDFy" } function provideCredentialsSyn
background.js
中触发onAuthRequired
方法。
根据mdn文档,我们可以使用extraInfoSpec
作为blocking
传递用户名和密码字段
测试方法:
background.js
const myCredentials = {
username: "me@company.com",
password: "zDR$ERHGDFy"
}
function provideCredentialsSync(requestDetails) {
// If we have seen this request before, then
// assume our credentials were bad, and give up.
if (pendingRequests.indexOf(requestDetails.requestId) != -1) {
console.log(`bad credentials for: ${requestDetails.requestId}`);
return { cancel: true };
}
pendingRequests.push(requestDetails.requestId);
console.log(`providing credentials for: ${requestDetails.requestId}`);
return { authCredentials: myCredentials };
}
browser.webRequest.onAuthRequired.addListener(
provideCredentialsSync,
{ urls: [target] },
["blocking"]
);
有关参考信息,请参阅github代码:
按照上述方法,它尝试使用给定的凭据进行身份验证。
如果凭证正确,则将重定向到相应页面
问题
登录
按钮这是客户端脚本吗?如果是这样,则您的凭据存储在脚本中是一个主要的安全问题。@Taplar是的,这是客户端脚本。是的,关于安全性,您是对的,因此我需要通过本机主机访问凭据,而不是在脚本中硬编码凭据。“如何只填充凭据而不命中请求?”-您不能。我想这是故意的。还请注意,使用NTLM/Kerberos时,通常根本不会出现身份验证提示。当您发布的代码和示例只涉及HTTP基本身份验证时,为什么这个问题的标题中会出现NTLM?NTLM/Kerberos非常不同。@Dai对迟回复表示歉意。NTLM是因为上面提到的站点的响应头为
www-authenticate:NTLM
。这是客户端脚本吗?如果是这样,则您的凭据存储在脚本中是一个主要的安全问题。@Taplar是的,这是客户端脚本。是的,关于安全性,您是对的,因此我需要通过本机主机访问凭据,而不是在脚本中硬编码凭据。“如何只填充凭据而不命中请求?”-您不能。我想这是故意的。还请注意,使用NTLM/Kerberos时,通常根本不会出现身份验证提示。当您发布的代码和示例只涉及HTTP基本身份验证时,为什么这个问题的标题中会出现NTLM?NTLM/Kerberos非常不同。@Dai对迟回复表示歉意。NTLM是因为上面提到的站点的响应头为www-authenticate:NTLM
。