易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL注入

如何在JSP中写代码防止SQL注入
过滤输入数据  发现可疑字符活着字符串  替换成"" 或者抛出异常

直接修改sql语句不行么

使用占位符

对sql语句用此对象 PreparedStatement 操作,然后传参 。
PreparedStatement  pt = conn.prepareStatement("select * table from where id = ?");
pt.setInt(1,a_id);

防注入的最有效,最简单的方法是
使用预编译的PreparedStatement
而不是使用拼凑SQL的 Statement

比如判断用户名和密码的例子,应该用

Java code:
/**
* 一段防止SQL注入的使用预编译的PreparedStatement的代码例子
*
* @param username 用户名
* @param password 密码
* @return 成功返回true,否则返回false
*/
public static boolean checkLogin(String username, String password) {
Connection con = null;// 数据库连接部分我就不写了
PreparedStatement stat = null;
ResultSet rs = null;
try {
// 预编译语句
stat = con.prepareStatement("select count(*) from t_user where username=? and password=?");
// 设置2个参数
stat.setString(1, username);
stat.setString(2, password);
// 执行
rs = stat.executeQuery();
if (rs.next()) {
return rs.getInt(1) > 0;
}
return false;
} catch (Exception ex) {
ex.printSta


相关问答:

jsp链接sql2000的疑问?



type Exception report


message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jas ......

sql语句的问题 - MS-SQL Server / 基础类

有2个表啊: 
表名:yh 
用户编码 用户名称  
001 a 
002 b 
003 c 
表名:ys 
用户编码 本期指数 抄表时间 
  001 ......

sql性能求助 - MS-SQL Server / 疑难问题

场景如下:
客户把备份好的数据库,发给我,我在本机还原后,运行写好的存储过程,比较快,并且在实施那边运行同样比较快。但是当实施在客户那边运行的时候速度就非常的慢,时间超出了程序的时间限制。远程在客户那 ......

求一sql【谢谢】 - MS-SQL Server / 基础类

需求如下:
a表:
 p_id status  
  1 0
  2 0
b表
rec_id pid purchase_qty receive_qty flag
1 1 10 10 0
2 ......

SQL时间段问题

一个很奇怪的问题 
SQL code
select * from Gprs_DataInof 
--可以查到所有的数据
select * from Gprs_DataInof where DataTime between 1900-10-16 1:01:00' and '2009-10-20 1:01:00'
--一条数据 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号