我们正在传递秘密密钥,以对启用https的网站之间的GET请求进行身份验证。以下哪种方式更安全:
GET /auth?secret=8727n2i752gns982jsn'
只有2台服务器知道该秘密密钥。
或者我们应该将标头设置如下:
request({
url: '/auth',
headers: {
'secretKey': 's87ehwdiw8y3dhj'
}
});
哪种方法更安全?为什么?
答案 0 :(得分:2)
理想情况下,发送密钥不是一个好选择。但是,如果有最需要的话,我建议您在以下标题中发送密钥:
request({
url: '/auth',
headers: {
'secretKey': 's87ehwdiw8y3dhj'
}
});
如果将“秘密密钥”提供给浏览器,则不再是秘密了。浏览器中的Javascript太开放了,无法真正保留密钥机密。
由于它不那么可见,但是任何人都可以嗅探它,因为它只是JavaScript。
以下是一些可以启发您的链接:
答案 1 :(得分:1)
request({
url: '/auth',
headers: {
'Authorization': 'Bearer s87ehwdiw8y3dhj'
}
});
这是通过标头传递令牌的标准化方法。安全部分实际上更多地是关于令牌的创建。
“载体”是您使用的授权类型。可能是“基本”等 即
'Authorization': 'Basic s87ehwdiw8y3dhj'