PreparedStatement 防数据库注入漏洞攻击
来源:互联网 发布:| wc linux 编辑:程序博客网 时间:2024/04/29 00:35
以前看过一些C#关于数据库的操作,记得其中用@来防止数据库注入漏洞攻击,现在由于实习需要,转向Java,学习Jdbc,正好在做数据库这一块,联想到Jdbc要怎么防止数据库注入漏洞攻击呢,于是百度Jdbc防止注入漏洞攻击,找到PreparedStatement类,在这里记一下,以便以后复习,也给入门级需要的朋友做一下参考,如有不对之处,还请指正。
首先看一下什么是sql注入漏洞,见下面的sql语句:
String sql = "select name,password from User where name= '"+ userName + "'+ and password= '"+password+"'";
相信很多人都喜欢这样拼sql语句,但如果我们知道 某一个usrName,但不知道密码,于是我们传password的时候,
传入 or '1'='1, 结果也会登陆成功,这就是拼sql的坏处,于是就有了C#中的@,以及jdbc中的PreparedStatement
(注意与Statement的区别,Statement是PreparedStatement的父类,但其无法防止sql注入漏洞)
有了PreparedStatement,于是我们可以这么写
ResultSet rs=null;PreparedStatement stat = null;Connection conn = null;try{Class.forName(".......");//加载数据库驱动conn = DriverManager.getConnection(".....",".....", ".....");//获取数据库连接String sql = "select name,password from User where name = ? and password = ? "; pStat = conn.prepareStatement(sql);pStat.setString(1,name);//name是要传的用户名 pStat.setString(2,password);//password是要传的密码rs=pStat.executeQuery(sql);}catch(Exception e){e.printStackTrace();}
利用PreparedStatement我们就可以有效的避免sql注入漏洞攻击了。
3 0
- PreparedStatement 防数据库注入漏洞攻击
- SQL 注入防漏洞攻击
- 数据库防注入攻击
- sql 防注入漏洞
- 防注入攻击指南
- 防SQL注入攻击
- 防注入攻击指南
- PHP防注入攻击
- JDBC防注入攻击
- SQL注入漏洞攻击
- Sql 注入漏洞攻击
- sql注入漏洞攻击
- SQL注入漏洞攻击
- sql注入漏洞攻击
- Sql注入漏洞攻击
- JDBC中PreparedStatement如何防sql攻击
- 【黑马程序员】连接数据库时的注入漏洞攻击
- 通用的PHP防注入漏洞攻击的过滤函数代码
- java界面中的布局管理器(转载)
- previous operation has not finished
- c++单例模式
- [leetcode] Maximal Square
- 微博获取原图时重定向到图片的url
- PreparedStatement 防数据库注入漏洞攻击
- STM32定时器配置
- 函数string.substr、string.begin
- apache 配置虚拟主机。
- 对STL 中算法rotate Random access iterator 源码理解
- AEAI DP_V3.4.0_20150601升级说明
- magento 获得 module,action,method
- js手机横竖屏判断
- 在Mac系统上安装Tomcat