Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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
在javascript应用程序中,我应该将客户机机密存储在哪里_Javascript_Angularjs - Fatal编程技术网

在javascript应用程序中,我应该将客户机机密存储在哪里

在javascript应用程序中,我应该将客户机机密存储在哪里,javascript,angularjs,Javascript,Angularjs,我应该在JavaScript应用程序中的何处存储客户端机密,以防止其他用户访问它?我的特殊用例是AngularJS SPA 客户端密码是登录时生成并传递回客户端的guid,在不活动15分钟后过期 考虑到我的秘密钥匙的性质,我应该在乎吗 2件事: 第一:你不能。它在他们这边,任何有权访问(当用户登录时访问计算机)和有知识的人都可以看到它。以及任何拦截从客户端到服务器的传输的人(如果您不使用https) 第二:如果您正确地实现了它,就没有必要这样做 这意味着它会在到期后再次有效,还是一次性的* 是

我应该在JavaScript应用程序中的何处存储客户端机密,以防止其他用户访问它?我的特殊用例是AngularJS SPA

客户端密码是登录时生成并传递回客户端的guid,在不活动15分钟后过期

考虑到我的秘密钥匙的性质,我应该在乎吗

2件事:

第一:你不能。它在他们这边,任何有权访问(当用户登录时访问计算机)和有知识的人都可以看到它。以及任何拦截从客户端到服务器的传输的人(如果您不使用https)

第二:如果您正确地实现了它,就没有必要这样做

  • 这意味着它会在到期后再次有效,还是一次性的*
  • 是否针对服务器上的另一半进行身份验证
*通过一次性,我的意思是GUID应该是全局唯一的。您是每次为每个用户使用相同的GUID,还是放弃它,下次为他们分配新的GUID?如果第一次你有问题


如果你做了所有这些事情,那么你真的不需要担心。

可以始终使用
localStorage
你所说的“其他用户”是什么意思?你到底想防范什么?你通过HTTPS发送,并确保没有任何XSS漏洞。@CrazyTrain我试图确保有人无法屏蔽我的用户会话并获得他们的隐私。我很难将你的第二件事转化为具体行动。技术限制意味着客户机机密将像会话令牌一样工作,其中过期时间将随活动而延长。如果您知道我如何一次性实现客户机密,我们将不胜感激。我正在做第二点。我看不出第三点有什么关系。@ton.yeung编辑,关于第三点很抱歉,我误读了你原始帖子中的一些内容。每次用户登录时,我都会生成一个guid。每次经过身份验证的用户点击api时,我都会检查令牌,如果它存在,我会延长超时时间。超时后,令牌将被删除,用户必须重新验证,以获得新的GUID。一切都在ssl背后。我应该很好?@ton.yeung还有一件事。如果GUID仍然处于活动状态,其他知道GUID的人是否可以使用它连接到您的api并执行任何操作?如果他们不能,那么当在客户端使用GUID时,您就尽可能安全了。是的,他们可以,到目前为止,我还没有找到任何解决方法。这就是为什么我担心不能让任何其他用户获得它。