sql注入

来源:互联网 发布:我的第一本编程书 编辑:程序博客网 时间:2024/04/24 03:25
描述:通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,在抒写sql时,需谨记始终以PreparedStatement代替Statement,不仅防止sql注入,还可以提升sql执行效率,因为PreparedStatement执行所有语句在被DB的编译器编译后的执行代码被缓存下来,那么下次调用时只要是相同的预编译语句就不需要编译,只要将参数直接传入编译过的语句执行代码中

案例:登录平台时的验证用户和密码:select * from qxt_user_reg where name='随意' and password =' ' or '1'='1' , '1'='1' 恒成立,所以任意账户密码都能通过,更严重的会删掉表,如:select * from qxt_user_reg where name='随意' and password =' ' ;drop table qxt_user_reg'

所以大家写sql全部使用PreparedStatement,参数以??形式传入,即使参数里有敏感字符如 or '1=1'也数据库会作为一个参数一个字段的属性值来处理而不会作为一个SQL指令,这样就起到了防止SQL注入
0 0
原创粉丝点击