Java中防止跨站点请求伪造(CSRF)攻击

Java中防止跨站点请求伪造(CSRF)攻击,java,jsp,servlets,csrf,Java,Jsp,Servlets,Csrf,这是我的web应用程序的一个示例。它是否容易受到跨站点请求伪造(CSRF)攻击?如何预防CSRF 这是我的new.jsp,用于添加新用户 <FORM NAME="Form" METHOD="post" ACTION="controller?event=PostNewUser"> <TABLE WIDTH="655" BORDER="0" CELLPADDING="2" CELLSPACING="0" class="gray

这是我的web应用程序的一个示例。它是否容易受到跨站点请求伪造(CSRF)攻击?如何预防CSRF

这是我的new.jsp,用于添加新用户

            <FORM NAME="Form" METHOD="post" ACTION="controller?event=PostNewUser">
                <TABLE WIDTH="655" BORDER="0" CELLPADDING="2" CELLSPACING="0" class="gray_background" align="center" >        
                    <TR><TD colspan="4" CLASS="text" align="left"><strong>Personal Details</strong></TD></TR>
                    <tr>
                        <td colspan="4">
                            <table >
                                <TR>
                                    <TD width="62" align="right" CLASS="text">Code :&nbsp;</td>
                                    <td width="144"><INPUT NAME="code" TYPE="text" id="code" VALUE="N" CLASS="password" maxlength="9"></td>
                                    <td width="66" align="right" CLASS="text">Name :&nbsp; </td>
                                    <TD width="144" align="left" CLASS="text"><input name="name" type="text" id="name" value="" class="password" maxlength="80">
                                    </TD>
                                    <TD width="44" align="right" CLASS="text">Email :&nbsp;</TD>
                                    <TD width="152" align="left" CLASS="text"><input name="email" type="text" id="email" value="" class="password" maxlength="70"></TD>
                                </TR>                       
                    <TR>
                        <TD colspan="4" CLASS="text" align="center"><INPUT NAME="submit" TYPE="submit" class="submit_button" VALUE="Create" ></TD>
                    </TR>        
                </TABLE>
            </FORM>
你可以考虑使用。它是一个用于servlet应用程序的过滤器,旨在防止CSRF攻击


他们的网站设计并不出色。您可以通过向下滚动到页面底部来找到、和其他链接。

因为您没有采取任何措施来阻止它,是的。有很多关于如何预防的信息。OWASP是一个很好的开始,如果您有足够的进取心,并且目标是使用Spring,我相信Spring 4包括现成的CSRF支持。我相信,在3.1+版本下,它可以通过MVC拦截器进行简单的添加。是的,这是一个很好的观点。如果您使用的是框架,那么最好在那里寻找反CSRF功能。但我从问题中得到的印象是Suniel正在使用普通的servlets.agreed,这就是我提到“足够有进取心”的原因
 public class PostNewAgentEventHandler extends EventHandlerBase {

 protected void process(HttpServletRequest request,
        HttpServletResponse response) throws Exception {

 String name = request.getParameter("name").trim();
 String agentCode = request.getParameter("code").trim();
 String email = request.getParameter("email").trim();
}
}