利用拼接字符串可能导致SQL注入问题
package info.dyndns.oszc.Introduce;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public class SQLInject {
public static void read(String name) throws Exception{
String url = "jdbc:mysql://localhost:3306/comment";
String sql = "select id,name,content from say WHERE name =""+name+""";
System.out.println( sql);
Connection conn =
JdbcUtils.conn(url, "oszc", "1234");
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
while (rs.next()){
System.out.println(rs.getObject("id")+" "+
rs.getObject("name")+" "+rs.getObject("content")+" ");
}
JdbcUtils.closeDB(rs, st, conn);
}
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
read("" or 1 or"");
}
}
select id,name,content from say WHERE name ="" or 1 or""
110 CX (58.39.53.166 2012-1-26 22:12:59)我要钱~我要钱~我要钱......
119 zc (61.165.226.251 2012-1-26 22:34:11)保佑中500W!!!
120 stefanie (218.73.128.118 2012-1-26 22:41:46)今年记得罩着我
121 杨磊磊 (114.89.212.184 2012-1-26 23:01:17)欢迎光临!
124 xxx
正确了!
125 xxx
正确了!
126 xxx
呵呵
看到字符串被拼为永远是true的状态,1代表true,输出结果验证了拼串可以一次输出全部数据,解决方法待续
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 本人常用的批处理实用技巧
- 下一篇: C++中定义一个数组一定要给出长度吗?
