最近在看《web应用安全权威指南》,将重点整理记录下备忘。强烈推荐~网上有pdf版
Basic认证,该认证是无状态的,每次请求进行操作都会提供用户名和密码
Cookie与会话管理,常见需求,比如用户登录后、购物网站购物车都是需要保持客户端的状态的。记忆认证状态的功能叫做会话管理,为了实现会话管理,Cookie出现了,Cookie相当服务器下达命令给浏览器,通过Set-Cookie响应头信息,让浏览器记住“名称=变量”这种格式的值。
浏览器记住了Cookie值,再发送请求到该网站时,就会同时发送Cookie值(PHPSESSID),也就是会话ID。目前使用广泛的是Cookie中保存类似银行受理编号的会话ID,对应的值保存在服务器端,这种方法称为使用Cookie的会话管理。
Cookie的属性,涉及安全性的三个属性为:Domain、Secure、HttpOnly
Doamin Cookie发送对象服务器的域名,不设置最安全
Path Cookie发送对象URL的路径
Expires Cookie的有效期限。未指定则表示至浏览器关闭为止
Secure 仅在SSL加密的情况下发送Cookie
HttpOnly 指定了此属性的Cookie不能被JavaScript访问,无法彻底抵御XSS攻击,可增答攻击难度
设置HttpOnly属性方法,在php.ini文件中加入
session.cookie_httponly=on
同源策略
同源策略是禁止JavaScript进行跨站访问的安全策略,提高了安全性,但因为web程序本身可能存在漏洞,所以无法完全防止XSS、CSRF攻击。
当我们访问百度和谷歌网站时,需要禁止谷歌网站的脚本来获取百度网站的信息,只让百度网站的脚本在百度网站运行。
同源条件:需要满足URL的主机或全称域名一致、协议一致、端口号一致三个条件