主题
CSRF攻击
原理
- 网站使用 cookieId-session 的方式作为辨别用户的手段
- 即用户登陆后,服务器会生成一个 sessionId,保存在服务器内部,并返回给用户,用户后面的请求都在 cookie 中带上这个 sessionId,让服务器信任这个用户发送的请求
- 攻击者诱导已登陆的用户,点击攻击者写好的一个网站
- 当用户进入这个网站,攻击者就把用户进入时的请求头部中的 cookie 记录下来
- 然后请求一个服务器端的某个请求,并在请求的时候带上 cookie,让服务器端信任攻击者
防范
- 服务器端验证请求的域是否是可信任的,不可信任的(如攻击者发送的请求)就屏蔽掉
Token
:网站使用 token 的手段辨别用户,在客户端请求页面的时候,服务器生成一个 token,返回给客户端,往后一些重要的请求都要求带上这个 token,这样就算用户点击进入攻击网站,由于请求攻击网站不属于重要请求,所以也不会带上 token,攻击者自然不知道 token 是什么,这样攻击者也无法请求重要的请求了