上QQ阅读APP看书,第一时间看更新
2.3 状态连接
Web服务器通常一次处理多个用户代理的请求,但HTTP无法区分请求和用户代理的对应关系。在互联网出现的早期,这并不是一个重要的考虑因素,因为网页基本上是只读的。但是,现代网站通常允许用户登录并在访问不同页面并与之交互时跟踪其活动。为此,需要使HTTP会话成为有状态的。当客户端和服务器“握手”并继续来回发送数据包,直到通信方之一决定终止连接时,它们之间的连接或会话是有状态的。
当Web服务器想要跟踪每个对其发送请求的用户,从而实现有状态的HTTP会话时,它需要建立一种机制来跟踪发出后续请求的用户代理。特定用户代理和Web服务器之间的整个会话称为HTTP会话。跟踪会话的最常见方法是服务器在初始HTTP响应中发送Set-Cookie
标头。这要求接收到响应的用户代理存储cookie,这是与该特定Web域有关的一小段文本数据。然后,用户代理将任何后续HTTP请求的cookie标头中的相同数据返回给Web服务器。如果实现正确,则来回传递的cookie的内容将唯一地标识用户代理,从而建立HTTP会话。
cookie中包含的会话信息是黑客的主要目标。如果攻击者窃取了一个用户的cookie,那么他们可以假装是该网站上的用户。同样,如果攻击者成功地让网站接受了伪造的cookie,那么他们可以冒充任何用户。我们将在第10章介绍各种黑客窃取和伪造cookie的方法。