【发布时间】:2014-06-02 20:21:56
【问题描述】:
这是我的 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 : </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 : </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 : </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。
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();
}
}
【问题讨论】:
-
既然你没有采取任何措施来阻止它,是的。有很多关于如何预防的信息。