代码之家  ›  专栏  ›  技术社区  ›  Jaco Pretorius

在会话中存储OTP是否安全?

  •  0
  • Jaco Pretorius  · 技术社区  · 17 年前

    我正在编写一个Web应用程序,对于某些操作,用户需要输入一个一次性密码(otp),类似于大多数银行网站。

    所以我基本上需要生成一个随机字符串,将它存储在某个地方,发送给用户,然后根据我存储的那个验证输入的pin。

    将生成的字符串存储在ASP会话对象中是否安全?

    3 回复  |  直到 17 年前
        1
  •  0
  •   user151323    17 年前

    会话是客户端上不可访问的服务器端集合(与cookie/viewstate相反)。它应该不受客户操纵。

    不过,我认为您应该将这些OTP存储在数据库中并与之进行比较。

        2
  •  4
  •   user121356    17 年前

    不要储存密码。散列它(sha算法之一,最好使用一些盐)并存储散列。然后将用户键入的哈希与存储的哈希进行比较。然后,如果您的存储(无论是在会话对象、某些数据库中,还是在任何其他数据库中)受到破坏,攻击者就不会知道该pin是什么。

        3
  •  1
  •   Dokie    17 年前

    请注意,任何内存中的会话数据都不能传输到Web场中的其他Web服务器,因此如果需要扩展此站点,那么您可能希望将OTP从Web服务器上删除。当然,除非你使用粘性会话。