博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对Prepared Statement 是否可以防止 SQL Injection 的实验
阅读量:6843 次
发布时间:2019-06-26

本文共 1607 字,大约阅读时间需要 5 分钟。

代码:

import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;public class Test02 {    public static void main(String argsv[]){        try          {           Class.forName("org.postgresql.Driver").newInstance();           String url = "jdbc:postgresql://localhost:5432/postgres" ;               Connection con = DriverManager.getConnection(url,"postgres","postgres" );                      ///Phase 1:-------------Select data from table-----------------------           System.out.println("Phase 1------------------------start");                      String strsql = " select * from customers01 where cust_id = ?";           PreparedStatement pst=con.prepareStatement(strsql);           pst.setString(1,"3"); //find the customer with cust_id of 3.                      ResultSet rs = pst.executeQuery();                      while (rs.next())            {               System.out.print("cust_id:"+rs.getInt( "cust_id"));               System.out.println("...cust_name:"+rs.getString( "cust_name" ));           }           System.out.println("Phase 1------------------------end\n");                              rs.close();                     pst.close();          con.close();                  }         catch (Exception ee)        {           System.out.print(ee.getMessage());       }     }    }

如果我把  pst.setString(1,"3"); //find the customer with cust_id of 3. 改成:

pst.setString(1,"3 or 1 = 1"); 只是执行是无法得到结果而已,并未抓出所有记录。

prepared statement 还是相对的安全,它摒弃了sql语句的拼接。

本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/p/3140698.html,如需转载请自行联系原作者

你可能感兴趣的文章
【Python】random模块
查看>>
嵌入式Linux下Camera编程--V4L2【转】
查看>>
一文读懂最近流行的CNN架构(附学习资料)
查看>>
[工具] 程序员必须软件
查看>>
.Net Discovery系列文章阅读索引--带你探索未知的.Net世界
查看>>
设计模式(一)简单工厂(创建型)(Java&&PHP)
查看>>
Code First开发系列之数据库迁移
查看>>
UI方面书籍推荐
查看>>
Spark SQL概念学习系列之Spark SQL 优化策略(五)
查看>>
pgpool-II的 FATAL: role "nobody" does not exist 错误
查看>>
jsp路径
查看>>
关于location.href几种用法的区别
查看>>
【转】拷贝构造函数/深拷贝/浅拷贝
查看>>
什么是类比估算法=自上而下的估算
查看>>
[Java] Java 打包成jar包 和 解压jar包
查看>>
模拟ajax的 script请求
查看>>
2013年小米校园招聘笔试题
查看>>
单片机第13课:串口通信---向计算机发送数据
查看>>
[译]更改自定义活动设计器上的图标
查看>>
使用WF4 状态机CTP1 进行工作流开发
查看>>