浏览器的本地存储有多安全?

时间:2016-04-05 06:41:42

标签: javascript java jquery

      `$(function rememberMe() {

        if (localStorage.chkbx && localStorage.chkbx != '') {
            $('#remember-me').attr('checked', 'checked');
            $('#user').val(localStorage.usrname);
            $('#pass').val(localStorage.pass);
        } else {
            $('#remember-me').removeAttr('checked');
            $('#user').val('');
            $('#pass').val('');
        }

        $('#remember-me').click(function() {

            if ($('#remember-me').is(':checked')) {
                localStorage.usrname = $('#user').val();
                localStorage.pass = $('#pass').val();
                localStorage.chkbx = $('#remember-me').val();
            } else {
                localStorage.usrname = '';
                localStorage.pass = '';
                localStorage.chkbx = '';
            }
        });
    });

我使用本地存储在登录页面上实现“记住我”功能,但我怀疑它是多么安全。我将密码存储在本地存储中,但我想使用更好的选项。加密不会有帮助,因为我必须在客户端发送解密脚本。还有其他选择吗?

2 个答案:

答案 0 :(得分:5)

不要存储密码。在服务器端进行哈希加密,并在浏览器上存储cookie(localstorage或其他),如果通过https提供,则更好。始终执行加密/解密服务器端。

您可以看到有关如何安全地执行此操作以及遵循此stackoverflow答案中的最佳做法的详细说明:

What is the best way to implement "remember me" for a website?

The definitive guide to form-based website authentication

无论在哪里 cookie ,您都可以放置 localstorage

答案 1 :(得分:2)

永远不要在本地存储中存储密码。

  1. 进行身份验证,
  2. 创建会话密钥并将此密钥存储在SQL中,
  3. 将会话密钥保存在用户存储中
  4. 按会话密钥恢复会话
  5. 如果用户重新登录,请创建一个新的会话密钥。