往自身页面提交和别处页面提交到本页的设计小技巧
舉個簡單的例子:如用戶注冊模塊。頁面有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注入:
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的往自身页面提交和别处页面提交到本页的设计小技巧的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android之MediaPlayer播
- 下一篇: PHP提交表单到当前页动作检测