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