当前位置: 首页 > 面试题库 >

如何在Struts2应用程序中对AJAX请求进行CSRF保护

储思聪
2023-03-14
问题内容

我有一个struts2
webapp,需要在其中实现CSRF保护。对于状态表格,这是非常简单的。我只需要激活tokenSession拦截器,然后设置<s:token/>要提交的表单即可。(在这里和这里解释)

但是,当我需要为不一定通过表单提交的POST
AJAX调用(我使用jQuery)启用CSRF保护时,就会出现问题。在进行后续的AJAX调用时,我面临重用令牌的问题。

任何指针或不同的方法都是可以理解的。


问题答案:

目前,我已经通过为AJAX请求生成令牌并以正常响应发送它来解决了该问题,如下所示-

    Map<String, String> tokenInfo = Maps.newHashMap();
    tokenInfo.put("struts.token.name", TokenHelper.getTokenName());
    tokenInfo.put(TokenHelper.getTokenName(), TokenHelper.setToken());

我将从中提取出一个util方法,并将其标记激活的Actions作为响应的一部分返回,以将其重复执行而无需刷新页面。

我仍然在寻找一种优雅的解决方案。



 类似资料:
  • 问题内容: 我正在创建具有flux体系结构的react.js应用程序,并且试图弄清楚应该何时何地从服务器请求数据。有这个例子吗?(不是TODO应用!) 问题答案: 我强烈支持将异步写入操作放在动作创建者中,而将异步读取操作放在商店中。目标是将商店状态修改代码保留在完全同步的动作处理程序中;这使他们易于推理,并且易于进行单元测试。为了防止对同一端点的多个同时请求(例如,重复读取),我将把实际的请求处

  • 有一个关于Spring security csrf保护的问题。CSRF是否仅在我从REST客户端(如Postman)拨打REST电话时触发403状态?从代码中调用REST时是否触发403状态?如果是,如何保持csrf保护并拨打REST电话?

  • 问题内容: 我知道有很多类似的问题,但是没有一个是用户可以访问代码的HTML / javascript应用程序。 我有一个用nodejs编写的私有REST API。它是私有的,因为它的唯一目的是为我的HTML5客户端应用程序(Chrome应用程序和Adobe Air应用程序)提供服务器。因此,API密钥不是一个好的解决方案,因为任何用户都可以看到javascript代码。 我想避免机器人在服务器上

  • 问题内容: 想象一下下一个场景:用户想要注册到网页并填写表格。当他填写表格时,jQuery会通过正则表达式检查字段是否有效等。 将电子邮件作为用户注册后将使用的主键,需要使用Ajax来检查电子邮件字段,以使用户知道该电子邮件是否已注册。我想使用Ajax进行检查,以避免发送完整的表单并清空它,刷新页面等。 因此,当用户结束填写电子邮件字段时,Ajax请求将发送到服务器,类似于下一个链接: 当chec

  • 问题内容: 我有一个Windows应用程序,我想对其进行容器化。它是Windows桌面应用程序(不是Web应用程序)。我进行了一些搜索,发现关于容器化桌面应用程序的知识很少。我要容器化的应用程序在WindowsServerCore上运行良好。我的机器上有Windowsservercore映像。 我想知道如何进行容器化。有任何文档或有用的视频吗?当我完成dockerfile时,我可以与我的应用程序G

  • 使用 GWT 更轻松地测试异步应用程序 您可能从编写 Ajax 应用程序中获得了极大乐趣,但是对它们执行单元测试却着实让人头痛。 在本文中,Andrew Glover 着手解决 Ajax 的弱点(其中之一),即应对异步 Web 应用程序执行单元测试的固有挑战。 幸运的是,他发现在 Google Web Toolkit 的帮助下,解决这个特殊的代码质量问题要比预想的容易。 Ajax 在近期无疑是 W