我有一个Struts2的Web应用程序中,我需要实现CSRF保护。 对于统计的形成是非常直截了当。 我只需要激活tokenSession
拦截&然后设置<s:token/>
的形式提交。 (解释这里和这里 )
但是,当我需要启用POST AJAX调用(我使用jQuery),这不一定是通过表单提交的CSRF保护出现的问题。 使得后续Ajax调用当我面对重新使用令牌的问题。
任何指针或不同的方法理解。
我有一个Struts2的Web应用程序中,我需要实现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());
我将抽象出一个实用程序方法摆脱这种与有有令牌激活,返回此作为响应的,这将不重复页面的刷新执行行动的一部分动作。
我仍然在寻找一个优雅的解决这个虽然。
你能不能产生一个令牌,并在Ajax调用使用它作为参数?
对于后续Ajax调用,您可以使用per-user Token
,
不一定是per-request Token
,
在此解释SO回答: 我需要一个CSRF令牌jQuery的阿贾克斯()?