我需要保护我的Web应用程序(C#,MVC)免受用户会话劫持。这个web应用程序使用了很多AJAX组件。
一些编辑: 我的意思是防止拦截会话标识符。我在我的项目中有特定的架构:C#上的autorization point和返回会话ID的外部服务器。此会话ID用于客户端的javascript组件。我希望保护该会话ID不被替换。
https是唯一的方法吗?如果使用https,它会保护我免受拦截会话ID吗?
答案 0 :(得分:2)
首先,您应该阅读OWAP的会话管理备忘单:https://www.owasp.org/index.php/Session_Management_Cheat_Sheet
第二:SSL可防止某些特定攻击,因此您需要它来保护您的会话ID,但这不是您必须考虑的唯一事项
第三:通过JavaScript访问会话ID并不是一个好主意,因为如果存在跨站点脚本等漏洞,它可能会被窃取。
是否真的有必要使用JavaScript提供此会话ID?将它设置为cookie,设置HttpOnly(无JS-Access)和安全标志(仅通过HTTPS传输)标志并让浏览器透明地进行会话处理是一个好主意,因为cookie是随之传输的。每一个请求。