拼接字符串会把用户输入当 SQL 执行,改成占位符传参就能挡住注入。
Java 用 PreparedStatement 预编译,参数用 setXxx 逐个塞进去。
Python 用游标 execute 传参数元组;表名和排序字段不能占位,要白名单校验。
String sql = "SELECT * FROM users WHERE name = ? AND age > ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, name);
ps.setInt(2, age);
cursor.execute("SELECT * FROM users WHERE name = %s", (name,))
THE END






暂无评论内容