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

Posted lmaplet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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同时也可以防止表单重复提交的主要内容,如果未能解决你的问题,请参考以下文章

csrf_token的了解

技术分享Cookie-Form型CSRF防御机制的不足与反思

4.4 CSRF防御

前后端分离下如何防御CSRF攻击

CSRF攻击/防御

六十五:CSRF攻击与防御之CSRF防御之form表单防御