所以这个问题与一个流行的 Express 库(我认为)有关,名为 request https://github.com/request/request
我一直在滚动浏览它的 README.md,我要么是盲目的,要么是我很难找到在 GET 请求中发送参数的方法。 我正在使用的 api 服务告诉我
"send a GET request to the /1/login endpoint with username
and password as URL-encoded parameters:"
我认为我不应该使用流、表单、http 身份验证、自定义 http header 、OAuth 签名、代理、Unix 域套接字、TLS/SSL 协议(protocol)。我是否对其进行编码并将其作为查询参数发送?这似乎不安全,因为我正在使用该服务来登录用户。 祈祷这不是一个愚蠢的问题
最佳答案
要使用请求库发送查询字符串参数,请使用qs
选项:
request({
method: 'GET',
uri:'https://google.com/search',
qs: {
q: 'search query',
}
}, function(err, res, body){
console.log(body)
})
您对凭据保持谨慎是正确的。
IMO 对于大多数应用程序,您可以在整个站点中使用 HTTPS,将用户名/密码作为表单正文或 JSON 进行 POST,并依靠 TLS 来保护传输中的数据。
混合使用 HTTP 和 HTTPS 是有风险的,例如包含 https://domain.com/login 链接的 HTTP 页面容易受到“sslstrip”攻击(攻击者毒害 http 代码,用 http://attacker.com/?spoof=https://domain.com/login
替换链接。)
我建议不要在查询字符串中使用用户名/密码发出(在浏览器中)GET 请求,因为它们会显示在地址栏中,并且有人可以监视用户。
关于node.js - 在http请求库中发送参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31930098/