2017-06-22 65 views
0

我正在存储一些基本信息以用于显示每个用户的信息。我目前使用cookies来存储和检索它们,但是我想采用更安全的策略。我读过使用本地存储将会更安全和更好使用,但是,它们似乎没有任何过期日期(如Cookie),除非您使用会话存储,否则它们将无限期存储,而我不会想。但是,如果信息被加密,我不介意使用本地存储,但是对于当前的encryption libraries,我不知道如何使用它们。在网络服务器上存储使用信息

储存:

  • 用户名
  • 登录尝试
  • 用户是否被锁定或不

需要注意以下几点:我所存储的使用进行身份验证,仅显示错误消息。我正在使用tomcat 8来处理身份验证和运行服务器(以及锁定)。即使它未用于身份验证,我也不想将用户名保存或不保存(最多1-2天)。此外,我没有使用SQL数据库(或其他类型),但计划稍后实施,所以不要提出或询问它。

我在寻找大多数安全方法可能相对容易,我们有其他安全措施的实施,但不希望留下任何安全漏洞。

回答

0

没有安全的东西,纯粹是双向加密的客户端。如果您能够在客户端解密某些内容,其他人也可以解密。

此外,会话存储,本地存储和Cookie之间没有特别的安全差异。它们都是客户端,并且可以在同一个域上被JavaScript读取。

如果您确实希望事情安全起见,则必须存储在服务器端,并仅通过HTTPS传输它。其他任何事情都只是通过模糊处理来实现安全性,充其量也不是真正的安全性。

就过期而言,本地存储或会话存储不会自动到期(除会话结束时将清除会话存储)。你可以用JavaScript来实现一些,但只有当它们太旧时才会丢掉值,并且直到他们访问你的页面才会发生。

你可以做的最好的事情几乎是纯粹的客户端将在服务器上存储某种密钥,当你去解密时,它需要从服务器请求密钥(通过HTTPS)并使用解密。这样,他们无法解密它,而无需在服务器上进行某种适当的身份验证。

但是,如果你这样做,你可能会把信息存储在服务器上。

+0

好的,我有什么办法可以1.将信息存储在服务器上(一切似乎都存储在客户端)或2.使用密钥解密它?我也忘了提及我正在使用HttpOnly和安全标签为cookie atm。 –

+0

您可以通过多种方式将其存储在服务器上。数据库或应用程序会话都很常见。它取决于你的服务器端应用程序和框架,但有很多方法。通常情况下,您需要将会话ID存储在客户端的Cookie中。然后,当他们请求信息时,会话ID被发送到服务器,服务器使用它来查找他们的信用和状态,然后正常处理请求。对于一个密钥,你可以做一些非常相似的事情,然后将该密钥提供给加密。我建议不要担心这个关键,尽管......不太安全和更多的工作。 – samanime

+0

好吧,首先你知道这不是用于验证,因为这已经通过tomcat处理了?其次,我已经在使用cookie并希望更安全。此外,我不能使用会话ID,因为他们的用户没有通过身份验证,我从会话ID获得的所有信息都是空的。 –

相关问题