我將編寫一個負責用戶身份驗證的服務器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身份驗證