标签:prepare SQ 用户 str div insert class utils 通过
SQL 注入是用户利用某些系统没有对输入数据进行充分的检查,从而进行恶意破坏的行为。
例如登录用户名采用 ‘ or 1=1 or username=‘,后台数据查询语句就变成
sql = select * from users where username=‘‘ or 1=1 or username=‘‘ and password=‘"+password+"‘",由于sql中and的优先级比or高,所以整条查询语句等价于:
sql = select * from users where true;这样就造成随意登录
1 public void add(User user) {
2 Connection conn = null;
3 PreparedStatement st = null;
4 ResultSet rs = null;
5 try{
6 conn = JdbcUtils.getConnection();
7 String sql = "insert into users(id,username,password,email,birthday,nickname) values(?,?,?,?,?,?)";//利用占位符
8 st = conn.prepareStatement(sql);
9 st.setString(1, user.getId());
10 st.setString(2, user.getUsername());
11 st.setString(3, user.getPassword());
12 st.setString(4, user.getEmail());
13 st.setDate(5, new java.sql.Date(user.getBirthday().getTime()));
14 st.setString(6, user.getNickname());
15 int num = st.executeUpdate();
16 if(num<1){
17 throw new RuntimeException(”用户不存在");
18 }
19 }catch (Exception e) {
20 throw new DaoException(e);
21 }finally{
22 JdbcUtils.release(conn, st, rs);
23 }
24
25
26 }
标签:prepare SQ 用户 str div insert class utils 通过
原文地址:https://www.cnblogs.com/niuchuangfeng/p/9164003.html