Cookie
调用Cookie时,由于可校验Cookie的有效期,以及发送方的域,路径,协议等信息,所以正规发布的Cookie里面的内容不会因来自其他web站点和攻击者的攻击而泄露。
Set-Cookie --- 开始状态管理所使用的Cookie信息 --- 响应首部字段
Cookie --- 服务器所收到的Cookie信息 --- 请求首部字段
Set-Cookie: status=enable; expires=tue,05 Jul 2011 07:26:31 GMT; path=/; damain=.hackr.jp;
secure属性:用于限制web页面只在HTTPS安全链接时才可以发送Cookie;
Set-Cookie: name=value; secure
HttpOnly属性
扩展属性,利用javascript脚本无法获取Cookie,防止跨站脚本攻击(Cross-site scripting,XSS)对Cookie信息的窃取。
HTTP的不足:
①通信使用明文,不加密,内容有可能会被监听;
②不验证通信方身份,有可能遭到伪装;
③无法验证报文的完整性,所以有可能已遭篡改;
这些问题不仅在HTTP中出现,在其他未加密的协议中也会出现类似的问题。
SSL + HTTP = HTTPS(HTTP over SSL) SSL(secure socket layer,安全套接层)
HTTP协议的实现本身非常简单,无论谁发送过来的请求都会返回响应,因此不确认通信方,会存在以下隐患:
- 无法确定请求发送至目标的服务器是否按照真实意图返回响应的那台服务器,有可能是已伪装的服务器;
- 无法确定响应返回到的客户端是否按照真实意图接收响应的那个客户端,有可能是已伪装的客户端;
- 无法确定通信双方是否具备访问权限。因为某些web服务器上保存这重要的信息,只想发给特定用户通信的权限;
- 无法判定请求来自何方,出自谁手;
- 即使无意义的请求也会照单全收。无法阻止海量请求下的DoS攻击(Denial of Service,拒绝服务攻击);
- 无法查明对手的证书。
把添加了加密及认证机制的HTTP称为HTTPS HTTP+通信加密+证书+完整性保护。
HTTP+SSL/TSL 通常HTTP直接和TCP通信,当使用SSL时,变为先和SSL通信,再由SSL和TCP通信。