将访问令牌存储在客户端浏览器的会话存储中是否安全?
Is is safe to store access token in session storage of client browser?
我在网络中使用基于令牌的身份验证 API 来验证 user.I 我正在使用客户端浏览器会话存储来存储访问权限 token.Is 这样做安全吗?
我应该把它存放在哪里以使其更安全。
$('#btnLogin').click(function () {
$.ajax({
// Post username, password & the grant type to /token
url: '/token',
method: 'POST',
contentType: 'application/json',
data: {
username: $('#txtUsername').val(),
password: $('#txtPassword').val(),
grant_type: 'password'
},
//response(Access Token) stores inside session storage of Client browser.
success: function (response) {
sessionStorage.setItem("accessToken", response.access_token);
使用 localStorage
或 sessionStorage
存储客户端令牌以对您的 api 执行后续经过身份验证的请求是完全安全的,只要您在以下方面采取了良好的措施您的 api 可以管理该令牌并确保其安全:
生成的令牌不包含部分或全部凭据(用户或密码。
令牌不仅仅是 base64(用户名:密码),因为它很容易被解码并危及用户凭据。
令牌已过期。
您正在使用 https 调用您的 api,以确保请求和响应已加密。因此,任何人 "peeping" 在发出请求时都看不到令牌或凭据。
令牌不包含敏感信息
令牌已签名(这太棒了!这取决于您生成的令牌类型)因此任何人都无法篡改令牌,以防令牌与用户 ID 相关联或包含过期本身。
令牌不短(长度),也不易于 "guess" 生成(想想蛮力攻击)。签名确实对此有帮助,尤其是作为令牌本身一部分的过期(例如,参见 JWT 令牌)。
-
本地或会话存储存储就像cookie一样安全,这样看。如果客户端的设备、cookie 或本地存储受到损害,则整个事情都会受到损害。所以在那个时候它不会有太大的不同。
我在网络中使用基于令牌的身份验证 API 来验证 user.I 我正在使用客户端浏览器会话存储来存储访问权限 token.Is 这样做安全吗? 我应该把它存放在哪里以使其更安全。
$('#btnLogin').click(function () {
$.ajax({
// Post username, password & the grant type to /token
url: '/token',
method: 'POST',
contentType: 'application/json',
data: {
username: $('#txtUsername').val(),
password: $('#txtPassword').val(),
grant_type: 'password'
},
//response(Access Token) stores inside session storage of Client browser.
success: function (response) {
sessionStorage.setItem("accessToken", response.access_token);
使用 localStorage
或 sessionStorage
存储客户端令牌以对您的 api 执行后续经过身份验证的请求是完全安全的,只要您在以下方面采取了良好的措施您的 api 可以管理该令牌并确保其安全:
生成的令牌不包含部分或全部凭据(用户或密码。
令牌不仅仅是 base64(用户名:密码),因为它很容易被解码并危及用户凭据。
令牌已过期。
您正在使用 https 调用您的 api,以确保请求和响应已加密。因此,任何人 "peeping" 在发出请求时都看不到令牌或凭据。
令牌不包含敏感信息
令牌已签名(这太棒了!这取决于您生成的令牌类型)因此任何人都无法篡改令牌,以防令牌与用户 ID 相关联或包含过期本身。
令牌不短(长度),也不易于 "guess" 生成(想想蛮力攻击)。签名确实对此有帮助,尤其是作为令牌本身一部分的过期(例如,参见 JWT 令牌)。
-
本地或会话存储存储就像cookie一样安全,这样看。如果客户端的设备、cookie 或本地存储受到损害,则整个事情都会受到损害。所以在那个时候它不会有太大的不同。