从服务器向客户端发送授权 header 是否安全?
Is it safe to send authorization header from a server to client?
我正在设置一个新应用。一切都通过了non-HTTPS。只是 HTTP。无论如何,在用户登录后,服务器向客户端发送一个漂亮的 200,并且:
{
"user": {
"_id": "5595bb294cbed176e7594e79",
"username": "ckent1000",
"email": "clarkcando@gmail.com",
"roles": {
"account": {
"id": "5597089bbde23bf2179dba46",
"name": "superman"
}
}
},
"session": {
"userId": "5595bb294cbed176e7594e79",
"key": "6c5c2ed4-77f9-4038-b175-e9fb927c1b22",
"time": "2015-07-06T14:31:58.175Z",
"_id": "559a915e53723a85eaf75ea9"
},
"authHeader": "Basic NTU5YTkxNWU1MzcyM2E4NWVhZjc1ZWE5OjZjNWMyZWQ0LTc3ZjktNDAzOC1iMTc1LWU5ZmI5MjdjMWIyMg=="
}
好看吗?我的智慧表明这不是因为这是通过 HTTP 实现的。
HTTP 基本身份验证以明文传输凭据(即任何可以访问数据包的人都可以读取,无论是在传输过程中还是之后)。它们采用 Base-64 编码进行传输,但这提供了无机密性。
如果您计划使用基本身份验证,您必须保护您与 TLS 的通信。
有关详细信息,请参阅 https://en.wikipedia.org/wiki/Basic_access_authentication。
我正在设置一个新应用。一切都通过了non-HTTPS。只是 HTTP。无论如何,在用户登录后,服务器向客户端发送一个漂亮的 200,并且:
{
"user": {
"_id": "5595bb294cbed176e7594e79",
"username": "ckent1000",
"email": "clarkcando@gmail.com",
"roles": {
"account": {
"id": "5597089bbde23bf2179dba46",
"name": "superman"
}
}
},
"session": {
"userId": "5595bb294cbed176e7594e79",
"key": "6c5c2ed4-77f9-4038-b175-e9fb927c1b22",
"time": "2015-07-06T14:31:58.175Z",
"_id": "559a915e53723a85eaf75ea9"
},
"authHeader": "Basic NTU5YTkxNWU1MzcyM2E4NWVhZjc1ZWE5OjZjNWMyZWQ0LTc3ZjktNDAzOC1iMTc1LWU5ZmI5MjdjMWIyMg=="
}
好看吗?我的智慧表明这不是因为这是通过 HTTP 实现的。
HTTP 基本身份验证以明文传输凭据(即任何可以访问数据包的人都可以读取,无论是在传输过程中还是之后)。它们采用 Base-64 编码进行传输,但这提供了无机密性。
如果您计划使用基本身份验证,您必须保护您与 TLS 的通信。
有关详细信息,请参阅 https://en.wikipedia.org/wiki/Basic_access_authentication。