Безопасно ли хранить токен доступа в хранилище сеансов клиентского браузера? - PullRequest
0 голосов
/ 06 июня 2018

Я использую аутентификацию на основе токенов в веб-API для аутентификации пользователя. Я использую хранилище сеансов в браузере клиентов для хранения токена доступа. Безопасно ли это делать?Где я должен хранить его, чтобы он был безопаснее.

 $('#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);

1 Ответ

0 голосов
/ 06 июня 2018

Совершенно безопасно использовать localStorage или sessionStorage для хранения клиентских токенов для выполнения последующих аутентифицированных запросов к вашему API, при условии, что вы взяли хорошие меры в своем API для управления этим токеном и сохраненияэто безопасно:

  • Генерируемый токен не содержит часть или целые учетные данные (пользователя или пароль.

  • Маркер не просто base64(имя пользователя: пароль), поскольку его можно легко декодировать и скомпрометировать учетные данные пользователя.

  • Срок действия токена истек.

  • Вы используете httpsдля вызова вашего API, чтобы убедиться, что запросы и ответы зашифрованы. Таким образом, любой «подсматривающий» не видит токен или учетные данные при выполнении запроса.

  • Токен не содержитконфиденциальная информация

  • Токен подписан (это было бы здорово !, это зависит от того, какой тип токена вы генерируете), поэтому никто не может вмешаться в токен, если этот токен связансидентификатор пользователя или содержит сам срок действия.

  • Токен не является коротким (длина) или его легко «угадать», сгенерировать (подумайте о нападении с применением силы Брюса).Подпись действительно помогает в этом, особенно с истечением срока действия, которые являются частью самого токена (например, см. Токены JWT).

-

Локальное хранилище или хранилище сессий простотак же безопасно, как печенье, посмотрите на это так.Если устройство клиента взломано, cookie или локальное хранилище, все это взломано.Так что это не будет иметь большого значения в этот момент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...