CSRF 跨站攻击
CSRF (Cross Site Request Forgrey).是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一。
原理:
站内发送请求一般需要一个登陆了的标志。一般存储在cookies 中。这个cookies会存在浏览器中,而发送请求的时候都会带上这个cookies。hacker 无法拿到这个数据。但是可以通过发送请求都会带上cookies的这个特性,通过另外的网站转而调用需要的请求。这时候就能够成功。(只要cookies没有过期)。
通过这种方式hacker 无需获取cookies,只需要制作一个网站,在其相关cookies没有过期时让他去点击就可以进行危险的行为。
例子
http://bank.example/withdraw?account=bob&amount=1000000&for=bob2 可以使 Bob 把 1000000 的存款转到 bob2 的账号下。通常情况下,该请求发送到网站后,服务器会先验证该请求是否来自一个合法的 session,并且该 session 的用户 Bob 已经成功登陆。黑客 Mallory 自己在该银行也有账户,他知道上文中的 URL 可以把钱进行转帐操作。Mallory 可以自己发送一个请求给银行: