黑客攻防技术宝典-Web实战篇——第三章、Web应用程序技术(HTTP)(二)
Cookie
Cookie是HTTP协议中一个重要组成部分,也是攻击者利用的一个重要地方。
服务器使用cookie机制向客户发送数据,客户端保存cookie并将其返回服务器。(与其他请求参数不同,用户无需额外操作浏览器自动提交)
==Set-Cookie作为响应消息头发布cookie==
==浏览器将Cookie请求头自动添加到随后返回的请求中==
Cookie由名/值对组成。一个cookie消息头可以由多个cookie组成,用分号分隔。除了实际值,cookie消息头还可以包含多个属性用于控制浏览器处理cookie方式,如下:
- expires:用于设定cookie的有效时间,使cookie用永久性的保存在浏览器中。
- domin:指定cookie的有效域
- path:指定cookie的有效URL路径
- secure:如果使用这个属性,仅在HTTPS提交cookie
- HttpOnly:如果使用这个属性,无法通过JavaScript直接访问cookie。但是不支持所有浏览器
后续会详细讲解cookie
状态码
每个响应头都在第一行包含一个状态码,说明请求结果。根据状态码第一位数字,状态码分为5类:
- 1xx:提供信息
- 2xx:请求被成功提交
- 3xx:客户被重定向其他资源
- 4xx:请求包含某种错误
- 5xx:服务器执行时遇到错误
具体状态码详细解释请参考这里
HTTPS
HTTP通过非加密tcp作为传输机制,所以处于适当位置攻击者可以截取。
HTTPS通过SSL传输数据。(SSL升级为TLS)
不管采用何种传输方式,请求与响应应该采取相同方式。
HTTP代理
HTTP代理是协调客户端浏览器和web服务器之间访问的服务器。
当配置浏览器使用代理服务器时,浏览器将所有请求发给代理服务器,代理服务器把请求转交给web服务器,并将响应返回。
代理还有缓存、验证、访问控制服务。
HTTP代理:浏览器会将完整URL放在请求中(URL中包括“http://”),代理服务器会提取主机名称。
HTTPS代理:无法进行SSL握手,这样做会破坏安全隧道从而引起拦截攻击。因此浏览器必须将代理作为一个纯粹的TCP中继(即中转)。客户端通过CONNECT方法请求代理服务器创建一条到达任意目的服务器和端口的TCP链接,代理服务器仅对客户端和服务器之间的后续数据进行盲转发(只是转发,不关心、也不懂发送的内容是什么)。详细参考建立过程参考这里。
HTTP验证
HTTP拥有不同的用户验证方案:
- Basic:基本验证,请求头中以BASE64编码方式发送用户证书。
- NTLM:质询-响应式机制,使用了windows NTML协议。
- Digest:质询-响应式机制,随用户证书一起使用一个随机值MD5校验和。
==误解==:因为未加密,所以基本验证并不安全?其实可以用HTTPS机制传输防止窃听。
下一篇:Web功能啦,放假了所以每天一更。