我将编写一个负责用户身份验证的服务器API。从我的极限知识和理解中,当用户使用用户名和密码登录时,会话将被创建,并且使用用户名的auth cookie将保存到cookie中。当用户请求下一页时,cookie中的用户信息将发送到服务器,服务器将识别它。所以我的问题是,如果另一个人手动复制现有的cookie信息并在另一台计算机的浏览器中创建相同的cookie,该怎么办?它会跳过登录阶段吗?任何人都可以详细解释如何防止这个细节?谢谢使用cookie进行节点用户身份验证
1
A
回答
1
是的,它很可能会跳过登录阶段。你所描述的是会话劫持或cookie劫持的一种形式。通过未加密连接(即HTTP而不是HTTPS)使用cookie不是一个安全的解决方案,因为任何人都可以窃取和使用相同的cookie,通常这足以获得完全访问权限而无需进行身份验证。 (虽然它通常不是很难被利用,但并非不可能)。
很快就会有没有理由不使用HTTPS(详见my answer to other question)。
除了确保没有人能够读取cookie(使用HTTPS和HttpOnly),您还必须确保没有人能够猜出会话ID(例如,它不能是连续的或小数字的或类似的那)。
参见:
- Session hijacking在维基百科上
- Session hijacking在OWASP
- Session fixation在维基百科上
- Session fixation在OWASP
- Session riding(XSRF,CSRF)
相关问题
- 1. PowerShell使用Cookie进行身份验证
- 2. 使用AFHTTPClient进行Cookie身份验证
- 3. 如何禁用cookie时对用户进行身份验证?
- 4. 对用户进行身份验证
- 5. 通过会话或cookie进行用户身份验证?
- 6. 用户通过会话cookie进行身份验证后,Ning proxy_pass
- 7. spring-security:使用用户证书对LDAP进行身份验证
- 8. 节点Js身份验证
- 9. 在ServiceStack中不使用cookie进行身份验证
- 10. 在web api中使用cookie进行身份验证2
- 11. 使用jQuery Passport.JS进行身份验证不存储cookie
- 12. 使用Vanilla论坛对Cookie进行身份验证
- 13. HTTP POST和GET使用Cookie进行身份验证在Python中
- 14. 使用ASP.NET 5 MVC 6 Web API进行Cookie身份验证
- 15. 使用Cookie进行PHP Curl 302身份验证
- 16. 如何在CakePHP中使用Cookie进行身份验证?
- 17. 使用Owin OpenId身份验证混合Owin Asp.Net身份Cookie身份验证
- 18. 身份验证Cookie
- 19. 使用MVC 5进行用户身份验证,不使用EF
- 20. 如何使用Shiro进行基于cookie或Facebook用户的身份验证?
- 21. 。使用nginx进行.htaccess身份验证
- 22. 使用Active Directory进行身份验证
- 23. CakePHP - 使用MD5进行身份验证
- 24. 使用Jetty进行LDAP身份验证
- 25. 使用Yelp进行身份验证
- 26. 使用Zend_Http_Client进行身份验证
- 27. 使用crawler4j进行身份验证
- 28. 使用salesforce.com进行SAML身份验证
- 29. 使用JAAS进行身份验证
- 30. 使用DropWizard进行OAuth身份验证