首页 > 代码库 > Strut2 采用token机制防御CSRF同时也可以防止表单重复提交

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攻击及防止重复提交。

 

Strut2 采用token机制防御CSRF同时也可以防止表单重复提交