往自身页面提交和别处页面提交到本页的设计小技巧

来源:互联网 发布:阿里云磁盘挂载 编辑:程序博客网 时间:2024/05/22 10:30

举个简单的例子:如用户注册模块。页面有login.jsp、register.jsp、registerSuccess.jsp、registerFail.jsp

当用户填写晚注册信息时需要需要把填写的信息提交到register.jsp页面,然后把信息写入数据库。问题出现了:如果我不通过用户注册链接进入register.jsp而是直接访问register.jsp 那register.jsp中的一部分代码就会不在自己的允许下访问数据库。如何防止此种情况的发生?

<%
request.setCharacterEncoding("GBK");
String action = request.getParameter("action");
if(action != null && action.trim().equals("register")) {
String username = request.getParameter("username");
String password = request.getParameter("password");
//String password2 = request.getParameter("password2");
String phone = request.getParameter("phone");
String addr = request.getParameter("addr");
User u = new User();
u.setUsername(username);
u.setPassword(password);
u.setPhone(phone);
u.setAddr(addr);
u.setRdate(new Date());
u.save();
out.println("注册成功!恭喜!");
return;
}
 %>

<input type="hidden" name="action" value="register"/>

在form表单中添加一个隐藏域,只有从该表单提交才可以执行与数据库相关的代码,可以防止SQL注入

0 0