CSRF ,Cross-site request forgery,跨站请求伪造。是常见的网络攻击的方式之一,2007年曾被列为互联网20大安全隐患之一。攻击过程是攻击者伪造用户的浏览器请求,访问一个用户曾经访问过的网站, 使目标网站误以为是用户的操作而执行命令。
本篇j基于Spring Boot创建项目,用来演示CSRF 的攻击过程。
演示场景
在本地创建两个项目
- bank ,银行网站, 需要登录后使用,该网站提供了一个 http://localhost:8080/transfer 的接口,接收两个参数account和money,用于向指定账号转账、
- hack, 黑客网站, 本地演示可以直接使一个HTML文件 (csrf.html), 直接在浏览器中打开就可以看到效果。也可以使用Spring Boot 创建另外一个项目。
项目创建步骤
1. 银行网站创建和运行
-
进入Spring Boot的在线项目生成器页(https://start.spring.io/), 生成bank 的项目框架, 选择 Web和Security。
-
在Eclispe 中导入项目
解压下载的bank.zip, 在Eclipse中点击导入Maven 项目