所以这是我的前提:Web应用程序有一个基本主页,允许用户注册或登录。当用户登录(在SSL连接上)时,凭证在客户端和服务器之间安全地传输以进行验证。成功验证凭据后,服务器如何维护传入连接是同一个经过身份验证的用户而不是其他人?
对于更具体的示例,假设服务器发回一个身份验证令牌供用户在访问或修改私有数据时使用。只要用户通过令牌从服务器访问他们的信息和POST(或更糟糕的GET),任何人都可以存储此令牌(即:cookie(不安全),php会话(不熟悉这一点)或其他地方)只要令牌有效,侦听就可以使用该令牌访问帐户。每次访问私人信息时都必须发出新令牌,这样听众会落后一步,只能访问旧令牌吗?
有哪些方法可让服务器知道请求来自经过身份验证的用户,并让听众无法访问其帐户?
答案 0 :(得分:1)
只需更改会话ID或令牌等,对您无济于事。它的使用自动化很容易。
您已使用SSL执行第1步...这有助于防止有人首先获取数据。
您还应该跟踪服务器上的客户端IP地址,这样如果您收到特定会话的请求并且IP不匹配,您就会立即知道有人在欺骗或者用户有新地址,他们应该重新进行身份验证。
还有很多其他方法。我在Stack Overflow上看过一些。我会在找到它们时将它们发布在这里,但通常最好使用各种技术。
答案 1 :(得分:0)
这里有一个很好的讨论这个问题,以及一个名为hdiv的产品的广告,声称可以安全地工作: http://www.theserverside.com/news/1363675/Are-Java-Web-Applications-Secure