java防伪验证_java – 使用struts令牌的跨站点请求防伪

Struts 1 Action令牌方法与Struts 2令牌拦截器一样工作,因为它将向您的会话添加一个令牌,并在表单提交时检查它,但它是一个更加人性化的过程。基本工作流程是:

>用户通过Struts Action(不直接到JSP)获取表单。 Struts Action将在转发到包含该表单的JSP之前调用saveToken(request)。

> JSP上的表单必须使用< html:form>标签。

>您的表单提交的操作将首先调用isTokenValid(request,true),如果返回false,您应该重定向回到第一个Action,并显示一条错误消息。这也会重置下一个请求的令牌。

这样做不仅可以防止重复的表单提交,而且任何脚本都必须打到第一个Struts Action并获得一个会话,然后才能提交到第二个Struts Action来提交表单。由于站点无法为其他站点设置会话,因此应该防止CSRF。

如果您通常将用户直接发送到JSP,请不要。相反,创建一个继承自ActionForward的新类,并将其设置为execute()方法:

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

saveToken(request);

return super.execute(mapping, form, request, response);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值