栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Struts令牌防止跨站点请求伪造

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Struts令牌防止跨站点请求伪造

Struts 1 Action令牌方法的工作方式与Struts
2令牌拦截器相同,因为它将为您的会话添加令牌并在表单提交时对其进行检查,但这是一个更加手动的过程。基本工作流程是:

  1. 用户通过Struts Action(不是直接到达JSP)进入表单。
    saveToken(request)
    在转发到包含表单的JSP之前,将调用Struts Action 。
  2. JSP上的表单必须使用
    <html:form>
    标记。
  3. 表单提交给您的Action将首先被调用
    isTokenValid(request, true)
    ,如果返回,您应该重定向到第一个Action并显示一条错误消息
    false
    。这还将重置下一个请求的令牌。

这样做不仅可以防止重复提交表单,而且任何脚本都必须先击中第一个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);}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/441048.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号