Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 脱机web应用需要本地存储的安全凭据_Security_Web Applications_Offline - Fatal编程技术网

Security 脱机web应用需要本地存储的安全凭据

Security 脱机web应用需要本地存储的安全凭据,security,web-applications,offline,Security,Web Applications,Offline,我有一个可以使用HTML5离线缓存离线运行的web应用程序。我在客户端上存储用户密码的sha256哈希,这允许我在脱机时让用户在本地登录,但我不需要在本地存储实际密码 我想介绍一些功能,如果应用程序联机,那么应用程序将自动登录到服务器,而用户无需重新输入密码。这意味着我要么需要以某种方式将实际密码存储在客户机上,要么需要将哈希密码传递给服务器,以允许服务器对用户进行身份验证。这两种方法似乎都有缺点: 我不相信我可以将密码安全地存储在客户端上(javascript变量可以,但是页面刷新后,该变量就

我有一个可以使用HTML5离线缓存离线运行的web应用程序。我在客户端上存储用户密码的sha256哈希,这允许我在脱机时让用户在本地登录,但我不需要在本地存储实际密码

我想介绍一些功能,如果应用程序联机,那么应用程序将自动登录到服务器,而用户无需重新输入密码。这意味着我要么需要以某种方式将实际密码存储在客户机上,要么需要将哈希密码传递给服务器,以允许服务器对用户进行身份验证。这两种方法似乎都有缺点:

我不相信我可以将密码安全地存储在客户端上(javascript变量可以,但是页面刷新后,该变量就会超出范围。Cookie、会话存储或本地存储都很容易查看

我已经在本地存储密码的sha256散列,但是如果我在服务器上打开一个方法,允许该散列对用户进行身份验证,那么我也打开了安全性

有人有什么好主意吗?谢谢


(服务器为ASP.NET MVC#)

您可以将散列密码存储在IndexedDB或WebSQL数据库中,因为这两个数据库都很难读取-尽管Chrome开发者工具允许您访问它们,如果您知道如何使用的话-尽管Internet Explorer不支持这两个工具。但是如果您的应用程序脱机运行,这并不重要;)

您可以将散列密码存储在IndexedDB或WebSQL数据库中,因为这两个数据库都很难读取-尽管Chrome Developer工具允许您访问它们,如果您知道如何访问的话-尽管Internet Explorer中不支持这两个。但如果你的应用程序离线运行,那没关系;)