久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

了解SQL注入及如何解決

了解SQL注入及如何解決

推薦(免費):sql教程

SQL注入即是指web應用程序對用戶輸入數據的合法性沒有判斷或過濾不嚴,攻擊者可以在web應用程序中事先定義好的查詢語句的結尾上添加額外的SQL語句,在管理員不知情的情況下實現非法操作,以此來實現欺騙數據庫服務器執行非授權的任意查詢,從而進一步得到相應的數據信息。

1、SQL注入案例

模擬一個用戶登錄的SQL注入案例,用戶在控制臺上輸入用戶名和密碼, 然后使用 Statement 字符串拼接的方式實現用戶的登錄。

1.1 數據庫中先創建用戶表及數據

-- 創建一張用戶表 CREATE TABLE `users` (   `id` INT(11) NOT NULL AUTO_INCREMENT,   `username` VARCHAR(20),   `password` VARCHAR(50),   PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8;   -- 插入數據 INSERT INTO  users(username,`password`) VALUES('張飛','123321'),('趙云','qazxsw'),('諸葛亮','123Qwe'); INSERT INTO  users(username,`password`) VALUES('曹操','741258'),('劉備','plmokn'),('孫權','!@#$%^');   -- 查看數據 SELECT  * FROM users;

了解SQL注入及如何解決

1.2 編寫一個登錄程序

import java.sql.*; import java.util.Scanner;   public class TestSQLIn {     public static void main(String[] args) throws ClassNotFoundException, SQLException {         Class.forName("com.mysql.jdbc.Driver");         String url = "jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=UTF-8";         Connection conn = DriverManager.getConnection(url,"root","123456");         //System.out.println(conn);         // 獲取語句執行平臺對象 Statement         Statement smt = conn.createStatement();           Scanner sc = new Scanner(System.in);         System.out.println("請輸入用戶名:");         String userName = sc.nextLine();         System.out.println("請輸入密碼:");         String password = sc.nextLine();           String sql = "select  * from users where username = '" + userName + "'  and  password = '" + password +"'";         //打印出SQL         System.out.println(sql);         ResultSet resultSet = smt.executeQuery(sql);         if(resultSet.next()){             System.out.println("登錄成功?。?!");         }else{             System.out.println("用戶名或密碼錯誤,請重新輸入!?。?quot;);         }           resultSet.close();         smt.close();         conn.close();       }   }

1.3 正常登錄

輸入正確的用戶名及密碼后提示"登錄成功"

了解SQL注入及如何解決

1.4 登錄失敗

輸入用戶名或密碼錯誤時,提示“用戶名或密碼錯誤,請重新輸入”

了解SQL注入及如何解決

1.5 模擬SQL注入

拼接的字符串中有or '1'='1' 為恒成立條件,因此 及時前面的用戶及密碼不存在也會取出所有記錄,因此提示"登錄成功"

了解SQL注入及如何解決

1.6 SQL語法報錯

使用拼接的方式,還會出現SQL語法錯誤等報錯,例如

了解SQL注入及如何解決

2. 解決方案

使用Statement方式,用戶可以通過字符串拼接,改變原本SQL真正的含義,導致存在SQL注入的風險。解決SQL注入,可以通過預處理對象PreparedStatement來代替Statement進行處理。

1.1 編寫一個新程序

import java.sql.*; import java.util.Scanner;   public class TestSQLIn {     public static void main(String[] args) throws ClassNotFoundException, SQLException {         Class.forName("com.mysql.jdbc.Driver");         String url = "jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=UTF-8";         Connection conn = DriverManager.getConnection(url,"root","123456");         //System.out.println(conn);         // 獲取語句執行平臺對象 Statement         // Statement smt = conn.createStatement();           Scanner sc = new Scanner(System.in);         System.out.println("請輸入用戶名:");         String userName = sc.nextLine();         System.out.println("請輸入密碼:");         String password = sc.nextLine();           String sql = "select  * from users where username = ? and  password = ? ";         // System.out.println(sql);         // ResultSet resultSet = smt.executeQuery(sql);         PreparedStatement preparedStatement = conn.prepareStatement(sql);         preparedStatement.setString(1,userName);         preparedStatement.setString(2,password);           ResultSet  resultSet = preparedStatement.executeQuery();         if(resultSet.next()){             System.out.println("登錄成功?。?!");         }else{             System.out.println("用戶名或密碼錯誤,請重新輸入?。。?quot;);         }             preparedStatement.close();         resultSet.close();         // smt.close();         conn.close();       }   }

2.2 正常登錄

了解SQL注入及如何解決

2.3 用戶名密碼錯誤

當用戶名或密碼輸入錯誤時,會提示“用戶名或密碼錯誤,請重新輸入”

了解SQL注入及如何解決

2.4 模擬SQL注入

按照之前的情況,進行SQL注入的寫法,測試后不再出現SQL注入情況。

了解SQL注入及如何解決

2.5 模擬SQL語法錯誤

使用預處理類后,輸入帶有單引號或雙引號的內容也不會再出現SQL語法錯誤的報錯

了解SQL注入及如何解決

3. 小結

Statement 與 PreparedStatement的主要區別如下:

  • Statement用于執行靜態SQL語句,在執行時,必須指定一個事先準備好的SQL語句

  • PrepareStatement是預編譯的SQL語句對象,語句中可以包含動態參數“?”,在執行時可以為“?”動態設置參數值

  • PrepareStatement可以減少編譯次數提高數據庫性能

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
激情综合网五月| 久久精品亚洲人成影院 | 亚洲天堂免费| 国产成人黄色| 日韩综合一区二区| 亚洲一区久久| 91久久黄色| 国产精品日本一区二区不卡视频| 性色一区二区| 欧美色图国产精品| 日韩伦理一区| 成年男女免费视频网站不卡| 国产一卡不卡| 伊人久久一区| 一二三区精品| 国产欧美日韩综合一区在线播放| 日韩综合一区二区三区| 国产探花一区二区| 视频在线不卡免费观看| 婷婷成人综合| 综合亚洲自拍| 国产精品二区影院| 精品美女在线视频| 91精品精品| 日本一区二区中文字幕| 日韩av黄色在线| 美女国产一区二区三区| 视频二区不卡| 免费久久99精品国产自在现线| 在线亚洲精品| 日韩国产在线观看一区| 国产精品久久久久9999高清| 成人在线丰满少妇av| 久久九九99| 蜜桃av一区二区在线观看| 国产精品亚洲欧美一级在线| 日韩欧美另类一区二区| 国产精品久久久久久久免费观看 | 国产精品综合色区在线观看| 国产精品成人a在线观看| 午夜欧美理论片| 国产精品草草| 国产视频亚洲| 久久国产乱子精品免费女| 日产午夜精品一线二线三线| 成人午夜国产| 日韩在线黄色| 青草av.久久免费一区| 丝袜国产日韩另类美女| 日韩精品dvd| 福利片在线一区二区| 亚洲欧美日韩国产| 精品美女在线视频| 日本欧美大码aⅴ在线播放| 国产精选在线| 亚洲精品四区| 99精品综合| 麻豆传媒一区二区三区| 石原莉奈在线亚洲二区| 亚洲黄色免费av| 日韩高清在线一区| 国产精品美女久久久| 综合日韩在线| 国产一区二区三区视频在线| 一区二区国产在线观看| 狠狠躁少妇一区二区三区| 国产日韩中文在线中文字幕| 蜜桃国内精品久久久久软件9| 免费人成黄页网站在线一区二区| 色婷婷精品视频| 国产96在线亚洲| 欧美精选一区二区三区| 国产视频欧美| 少妇精品久久久一区二区三区| 日韩精品免费视频一区二区三区| 日韩精品高清不卡| 国产区精品区| 精品三级av| 精品视频在线观看网站| 麻豆国产91在线播放| 麻豆国产精品视频| 亚洲先锋成人| 日本亚洲视频在线| 麻豆国产精品777777在线| 九九精品调教| 爽好久久久欧美精品| 国产欧美日韩精品高清二区综合区| 麻豆传媒一区二区三区| 日韩一级精品| 国产精品一国产精品| 亚洲第一区色| 国产精东传媒成人av电影| 亚洲欧美高清| 免费观看亚洲| 欧美影院精品| 极品日韩av| 中文字幕一区久| 免费一级欧美片在线观看网站| 一本综合精品| 午夜国产精品视频免费体验区| 91福利精品在线观看| 视频福利一区| 久久99蜜桃| 中文字幕视频精品一区二区三区 | 日韩视频精品在线观看| 久久国产欧美日韩精品| 欧美日韩激情| 国产精品麻豆久久| 一二三区精品| 国精品一区二区三区| 精品国产亚洲日本| 97久久亚洲| 亚洲一二av| 日韩午夜电影| 亚洲精品在线观看91| caoporn视频在线| 国产日韩欧美一区| 久久亚洲二区| 久久精品国产大片免费观看| 久久影院一区二区三区| 日本成人一区二区| 中文视频一区| 国产精品色网| 91精品精品| 欧美日韩国产免费观看视频| 99久久激情| 亚洲激情av| 亚洲一区二区三区四区五区午夜 | 麻豆中文一区二区| 精品中文在线| 久久久久久婷| 成人羞羞视频播放网站| 日韩欧美视频专区| 日本不良网站在线观看| 国产在线看片免费视频在线观看| 国产日产精品一区二区三区四区的观看方式 | 久久不卡日韩美女| 国产欧美日韩| 日本不卡中文字幕| 亚洲18在线| 国产精品va视频| 国产精品尤物| 麻豆精品蜜桃视频网站| 国产免费av一区二区三区| 日韩亚洲国产欧美| 欧美一区二区三区久久| 欧美片网站免费| 亚洲开心激情| 欧美精品二区| 麻豆国产在线| 久久九九99| 免费看的黄色欧美网站| 国产乱子精品一区二区在线观看| 日本中文字幕不卡| 国产成人久久精品麻豆二区| 国产成人调教视频在线观看| 秋霞影院一区二区三区 | 色综合视频一区二区三区日韩| 日韩精品乱码av一区二区| 成人午夜网址| 伊人久久成人| 亚洲+小说+欧美+激情+另类| 欧美私人啪啪vps| 91精品99| 国产精品久久久久毛片大屁完整版| 麻豆91精品视频| 亚洲网站视频| 免费在线播放第一区高清av| 久久夜夜操妹子| 亚洲bt欧美bt精品777| 国产成人在线中文字幕| 久久精品超碰| 久久精品高清| 国产免费av国片精品草莓男男| www.com.cn成人| 久久精品亚洲| 91日韩免费| 国产乱子精品一区二区在线观看 | 欧美亚洲色图校园春色| 国产色播av在线| 日本综合视频| 深夜福利亚洲| 久久中文亚洲字幕| 国产精品一区二区三区美女| 欧美中文字幕一区二区| 日韩精品午夜| 精品国产乱码久久久久久1区2匹| 在线一区免费观看| www在线观看黄色| 国产91在线精品| 国产伦一区二区三区| 日韩影院在线观看| 免费在线观看视频一区| 色老板在线视频一区二区| 久久精品国产99国产| 欧美自拍一区| 国产精品传媒麻豆hd| 久久狠狠久久| 久久精品99国产精品日本| 国产精品videossex久久发布|