csrf攻击原理及防御措施
DESCRIPTION
CSRF(Cross-site request forgery跨站请求伪造,也被称成为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。TRANSCRIPT
Csrf 攻击原理及防御措施
csrf 简介
百科相关介绍:http://baike.baidu.com/view/1609487.htm?fr=ala0_1_1
CSRF(Cross-site request forgery 跨站请求伪造,也被称成为“one click attack”或者 session
riding,通常缩写为 CSRF 或者 XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本
(XSS),但它与 XSS 非常不同,并且攻击方式几乎相左。XSS 利用站点内的信任用户,而
CSRF 则通过伪装来自受信任用户的请求来利用受信任的网站。与 XSS 攻击相比,CSRF 攻
击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比 XSS
更具危险性。
关键字:不大流行、难以防范、更具危险性。
Csrf 原理图
Csrf 攻击三步走
第一步、到目标网站发一个极具诱惑力的 link,诱使登录用户或者网站管理员进行点击。
第二步、在点击目标网站,编写恶意提交代码, 比如
第三步、出发该恶意代码。有非常多的方式,比如说点击,甚至有可能是鼠标移动。
Csrf 实例测试
简单的搞定两个域:bingo 和 phpobject。Bingo 是工具目标。
在 bingo 有两个页面
Login.php:登录页面。只是简单的设置一个 cookie。
Submit.php:提交操作页面,也只是简单的获取请求中的 cookie
Phpobject 只有一个简单的页面
Hack.php
测试开始:
1、 首先登录。http://bingo/test/tbs/login.php
2、 提交测试。
3、 恶意提交,来自
http://phpobject/hack.php
点击结果
结果:csrf 攻击成功。
Csrf 能成功的根本原因是:浏览器是根据提交目标源选择 cookie 的,无视你提交操作的来
源 URL。
Csrf 解决根本方法
在提交请求中,附带一个唯一标识用户的加密串,该加密串需要做到不能被伪造,和用户一
一对应,但不固定。(所以不能采用 uid 做加密因子)