繁体   English   中英

Struts 1.2 ActionForms和isTokenValid CSRF

[英]Struts 1.2 ActionForms & isTokenValid CSRF

我目前遇到一个问题,即动作表单的validate方法在动作的execute方法之前发生。

这是一个问题,原因是用户可以提交自己的请求,并且应该让他们所有必需的字段都完成验证过程,并且使用isTokenValid(request)方法可以看到该请求无效。 并将其转发到“拒绝访问”页面。 但是,如果他们未完成其伪造请求中的所有必填字段,则validate方法将返回错误,并将它们转发到实际页面(.jsp),并显示错误消息。

任何想法如何防止这种情况?

要使用令牌在Struts1中实现CSRF预防,您不应允许直接访问JSP页面。

用户应该通过Struts Actions进入您的表单,该Action将调用saveToken(request),然后再将它们转发到JSP页面中的表单。

通常在直接转发到JSP的地方,可以更改为转发到从ActionForward继承的操作。 然后在执行过程中,可以通过调用父ActionForward execute方法来进行转发。 您还可以在新的动作类中实现其他逻辑限制。

在单独的线程上对Struts CSRF问题的此答案也可能有用: https : //stackoverflow.com/a/5339391/6136697

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM