【发布时间】:2013-08-06 15:25:57
【问题描述】:
我目前有一个问题,即 actionform 的 validate 方法发生在 action 的 execute 方法之前。
这是一个问题的原因是用户可以提交他们自己的请求,如果他们所有必填字段都完成了验证通过并使用 isTokenValid(request) 方法,我可以看到该请求无效。并将它们转发到“拒绝访问”页面。但是,如果他们没有完成伪造请求中的所有必填字段,则 validate 方法会返回错误,并将它们转发到实际页面 (.jsp) 并显示错误消息。
知道如何防止这种情况发生吗?
【问题讨论】:
-
为什么他们可以访问他们根本无法访问的页面?无论如何,有几个选项,但这取决于当前的应用程序流程,例如,您是使用身份验证过滤器、自定义请求处理器、“手动”还是通过默认请求处理器进行验证等。
-
我正在实施 CSRF 保护。因此,用户会登录,他们会意外地从恶意站点发起请求。大多数请求都可以通过使用 isTokenValid 来阻止,但由于在点击操作之前验证失败,它会转发到 .jsp 而不是拒绝访问页面。请注意,这实际上可能并不危险,因为所有发生的事情都是用户被转发到页面,而不是恶意人员自己,但仍然希望阻止。我是 struts 的新手,但使用带有自定义逻辑的 actionForm 的 validate 方法。
标签: java struts action csrf actionform