百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> 预编译为何可以防止sql注入
分享文章到:

预编译为何可以防止sql注入

发布时间:08/01 来源:未知 浏览: 关键词:
预编译可以防止sql注入的缘由:进行预编译之后,sql语句已经被数据库剖析,编译和优化了,而且允许数据库以参数化的情势进行查询,所以即便有敏锐字符数据库也会当成属性值来处置而不是sql指令了 预编译可以防止sql注入的缘由:进行预编译之后,sql语句已经被数据库剖析,编译和优化了,而且允许数据库以参数化的情势进行查询,所以即便有敏锐字符数据库也会当成属性值来处置而不是sql指令了

大家都晓得,java中JDBC中,有个预处置功能,这个功能一大优势就是能提高施行速度尤为是屡次操纵数据库的状况,再一个优势就是预防SQL注入,严厉的说,应当是预防绝大多数的SQL注入。

用途就是如下边所示:

String sql="update cz_zj_directpayment dp"+
 "set dp.projectid = ? where dp.payid= ?";
try {
PreparedStatement pset_f = conn.prepareStatement(sql);
pset_f.setString(1,inds[j]);
pset_f.setString(2,id);
pset_f.executeUpdate(sql_update);
}catch(Exception e){
//e.printStackTrace();
logger.error(e.message());
}

那为何它这样处置就能预防SQL注入提高平安性呢?其实是由于SQL语句在程序运转前已经进行了预编译,在程序运转时首先次操纵数据库以前,SQL语句已经被数据库剖析,编译和优化,对应的施行规划也会缓存下来并允许数据库以参数化的情势进行查询,当运转时动态地把参数传给PreprareStatement时,即便参数里有敏锐字符如 or '1=1'也数据库会作为一个参数一个字段的属性值来处置而不会作为一个SQL指令,如此,就起到了SQL注入的作用了!

以上就是预编译为何可以防止sql注入的细致内容,更多请关注 百分百源码网 其它相干文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有152人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板