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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/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 我的身份验证方法是否安全/需要改进?_Security_Session_Authentication_Cookies - Fatal编程技术网

Security 我的身份验证方法是否安全/需要改进?

Security 我的身份验证方法是否安全/需要改进?,security,session,authentication,cookies,Security,Session,Authentication,Cookies,在我的web应用程序上,我通过以下方式处理身份验证: 用户输入他的电子邮件和密码 在数据库中搜索用户,是否匹配bcrypt加密密码 如果是这样,一个新的会话记录将存储在数据库中,其中包含用户id和一个128位的随机密钥。此外,此密钥作为“安全”、“仅http”cookie存储在客户端上 每当用户向web应用发出请求时,该键就是在db中搜索会话的参考。如果有会话->已验证 会话在一定时间后被删除(例如3小时) 注意:所有请求都是SSL加密的 您是否看到此身份验证过程中存在任何缺陷?使用此工具时会有

在我的web应用程序上,我通过以下方式处理身份验证:

  • 用户输入他的电子邮件和密码

  • 在数据库中搜索用户,是否匹配bcrypt加密密码

  • 如果是这样,一个新的会话记录将存储在数据库中,其中包含用户id和一个128位的随机密钥。此外,此密钥作为“安全”、“仅http”cookie存储在客户端上

  • 每当用户向web应用发出请求时,该键就是在db中搜索会话的参考。如果有会话->已验证

  • 会话在一定时间后被删除(例如3小时)

  • 注意:所有请求都是SSL加密的

    您是否看到此身份验证过程中存在任何缺陷?使用此工具时会有什么危险

    谢谢


    Elias

    我可以在这里看到两种DoS攻击场景

  • bot可以在您的服务器上使用随机会话id发出随机请求,从而导致大量会话查找,因此您的会话管理可能会不堪重负。理想情况下,如果您的会话id可以在与DB进行检查之前使用算法验证为有效的会话id,则会更好
  • 具有各种uid/pwd组合的机器人可以点击登录屏幕,这将导致在DB上进行多个用户/pwd搜索。在内存中使用LRU uid/pwd缓存可以解决此问题,还可以为来自同一IP的多个登录请求提供验证码
  • 您没有提到的一点是,会话何时过期?如果用户未注销,您何时从表中清除会话id?如果会话ID同时从cookie中被劫持怎么办