日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL注入问题及预防方法

發布時間:2023/12/3 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL注入问题及预防方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SQL注入問題

sql存在漏洞,會被攻擊導致數據泄露 SQL會被拼接 or

package com.kuang.lesson02; import com.kuang.lesson02.utils.jdbcUtils; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class SQL注入 {public static void main(String[] args) throws SQLException {//SQL注入login("sanjin","123456"); // login("' or '1=1","123456");}public static void login(String name,String password) throws SQLException {Connection conn =null;Statement st = null;ResultSet rs =null;try {conn = jdbcUtils.getConnection();//獲取連接st = conn.createStatement();//獲取SQL執行對象String sql = "select * from users where `NAME`='"+ name +"' AND `PASSWORD`='"+ password +"'" ;rs=st.executeQuery(sql);//查詢完畢返回結果集while (rs.next()){System.out.println(rs.getString("NAME"));}jdbcUtils.release(conn,st,rs);} catch (Exception e) {e.printStackTrace();}finally {jdbcUtils.release(conn,st,rs);}} }

PreparedStatement對象

PreparedStatement 可以防止SQL注入 ,效率更高。

  • 新增
  • 刪除
  • 更新
  • 查詢
  • [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-g2bWtm8m-1609070543587)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201227170521886.png)]

    package com.kuang.lesson03; import com.kuang.lesson02.utils.jdbcUtils;import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class Test01 {public static void main(String[] args) throws SQLException {Connection connection= null;PreparedStatement pstm=null;try {connection = jdbcUtils.getConnection();//區別//使用問好占位符代替參數String sql = "insert into users(id,`NAME`) values(?,?)";pstm = connection.prepareStatement(sql);//預編譯sql,先寫sql然后不執行//手動賦值pstm.setInt(1,6);pstm.setString(2,"SANJIN");//執行int i = pstm.executeUpdate();if (i>0){System.out.println("插入成功");}} catch (Exception e) {e.printStackTrace();}finally {jdbcUtils.release(connection,pstm,null);}} }

    防止SQL注入本質,傳遞字符 帶有“ ”,轉義字符會被轉義

    總結

    以上是生活随笔為你收集整理的SQL注入问题及预防方法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。