Strut2 采用token机制防御CSRF同时也可以防止表单重复提交
一 未配置Struts2 token的情况下测试
1.从表单提交数据,可以从下图看出,快速点击保存按钮,请求提交了两次
2.检查post提交的数据中未含有token参数
3.查看数据列表,有重复数据
4.将刚才的请求由post请求转换为get请求(CSRF攻击),从下图可以看出请求成功
二 配置Struts2 token值后再次测试
1. 在工程中的Struts文件中配置token机制,针对新增与修改的form请求
2.在页面头部添加<%@ taglib uri="/struts-tags" prefix="s" %>,在form表单中添加<s:token/>
3.配置好Struts2 token机制后再次测试,新增数据,从下图中可以看出,连续的第二次请求响应为404
4. 检查post数据请求,请求里生成了token值
5.检查列表中数据,无重复数据
6.转换成get方式再次请求,响应404(登录状态)
以上情况,为验证Struts2 采用token令牌的方式防止CSRF攻击及防止重复提交。