Struts 1 Action令牌方法的工作方式与Struts 2令牌拦截器相同,因为它将为您的会话添加令牌并在表单提交时对其进行检查,但这是一个更加手动的过程。基本工作流程是:
这样做不仅可以防止重复提交表单,而且任何脚本都必须先击中第一个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);
}