欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL注入漏洞過(guò)程實(shí)例及解決方案

 更新時(shí)間:2020年03月20日 15:12:43   作者:shouyaya  
這篇文章主要介紹了SQL注入漏洞過(guò)程實(shí)例及解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

代碼示例:

public class JDBCDemo3 {
  public static void demo3_1(){
    boolean flag=login("aaa' OR ' ","1651561");  //若已知用戶(hù)名,用這種方式便可不用知道密碼就可登陸成功
    if (flag){
      System.out.println("登陸成功");
    }else{
      System.out.println("登陸失敗");
    }

  }
  public static boolean login(String username,String password){
    Connection conn=null;
    Statement stat=null;
    ResultSet rs=null;
    boolean flag=false;
    try {
      conn=JDBCUtils.getConnection();
      String sql="SELECT * FROM user WHERE username='"+username+"'AND password='"+password+"'"; //此處是SQL注入漏洞的關(guān)鍵,因?yàn)槭亲址钠唇?,?huì)使查詢(xún)語(yǔ)句變?yōu)椋篠ELECT * FROM user WHERE username='aaa' OR '' AND password='1651561',此查詢(xún)語(yǔ)句是可得到結(jié)果集的,便出現(xiàn)此漏洞
      stat=conn.createStatement();
      rs=stat.executeQuery(sql);
      if(rs.next()){
        flag=true;
      }else{
        flag=false;
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }
    return flag;
  }

解決方法,使用PrepareStatment:

public static void demo3_1(){
    boolean flag=login1("aaa' OR ' ","1651561");
    if (flag){
      System.out.println("登陸成功");
    }else{
      System.out.println("登陸失敗");
    }

  }
  public static boolean login1(String username,String password){
    Connection conn=null;
    PreparedStatement pstat=null;
    ResultSet rs=null;
    boolean flag=false;

    try {
      conn=JDBCUtils.getConnection();
      String sql="SELECT * FROM user WHERE username=? AND password=?"; //使用?代替參數(shù),預(yù)先設(shè)置好sql格式,就算在輸入sql關(guān)鍵字也不會(huì)被sql識(shí)別
      pstat=conn.prepareStatement(sql);
      pstat.setString(1,username); //設(shè)置問(wèn)號(hào)的值
      pstat.setString(2,password);
      rs=pstat.executeQuery();
      if(rs.next()){
        flag=true;
      }else{
        flag=false;
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }
    return flag;
  }
}

使用以上解決辦法就無(wú)法通過(guò)SQL注入漏洞登陸用戶(hù)成功。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mysql服務(wù)添加 iptables防火墻策略的方案

    Mysql服務(wù)添加 iptables防火墻策略的方案

    這篇文章主要介紹了給Mysql服務(wù)添加 iptables防火墻策略的方案,本文給大家分享兩種解決方案,需要的朋友可以參考下
    2021-04-04
  • 如何配置全世界最小的 MySQL 服務(wù)器

    如何配置全世界最小的 MySQL 服務(wù)器

    Intel Edison 是一個(gè)小巧的計(jì)算機(jī)基于 22 nm 的 Silvermont 雙核 Intel Atom CPU 主頻 500MHz運(yùn)行 Linux (叫做 Yocto 的基于 Ubuntu 的發(fā)布版)。為了對(duì) Edison 進(jìn)行編程,我們需要一塊接口板??梢赃x擇的板子包括兼容Arduino的接口板 (包含了 SD 卡) 還有 Intel 接口板。
    2016-04-04
  • MySQL存儲(chǔ)過(guò)程的查詢(xún)命令介紹

    MySQL存儲(chǔ)過(guò)程的查詢(xún)命令介紹

    這篇文章主要介紹了MySQL存儲(chǔ)過(guò)程的查詢(xún)命令介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • 你還在 Select * 嗎?

    你還在 Select * 嗎?

    這篇文章主要介紹了MySql Select ,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • MySQL優(yōu)化之如何查找SQL效率低的原因

    MySQL優(yōu)化之如何查找SQL效率低的原因

    這篇文章主要介紹了MySQL優(yōu)化之如何查找SQL效率低的原因 ,需要的朋友可以參考下
    2014-05-05
  • mysql的計(jì)劃任務(wù)與事件調(diào)度實(shí)例分析

    mysql的計(jì)劃任務(wù)與事件調(diào)度實(shí)例分析

    這篇文章主要介紹了mysql的計(jì)劃任務(wù)與事件調(diào)度,結(jié)合實(shí)例形式分析了mysql計(jì)劃任務(wù)與事件調(diào)度相關(guān)概念、原理、用法與操作注意事項(xiàng),需要的朋友可以參考下
    2019-12-12
  • MySQL實(shí)現(xiàn)字符串截取的圖文教程

    MySQL實(shí)現(xiàn)字符串截取的圖文教程

    在實(shí)際的項(xiàng)目開(kāi)發(fā)中有時(shí)會(huì)有對(duì)數(shù)據(jù)庫(kù)某字段截取部分的需求,這種場(chǎng)景有時(shí)直接通過(guò)數(shù)據(jù)庫(kù)操作來(lái)實(shí)現(xiàn)比通過(guò)代碼實(shí)現(xiàn)要更方便快捷些,這篇文章主要給大家介紹了關(guān)于MySQL實(shí)現(xiàn)字符串截取的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • Mysql中explain命令返回參數(shù)的具體使用

    Mysql中explain命令返回參數(shù)的具體使用

    EXPLAIN返回的關(guān)鍵列包括id、select_type、table、type、possible_keys、key、key_len、ref、rows和Extra等,本文就來(lái)介紹Mysql中explain命令返回參數(shù),感興趣的可以了解一下
    2024-09-09
  • MySQL清理數(shù)據(jù)并釋放磁盤(pán)空間的實(shí)現(xiàn)示例

    MySQL清理數(shù)據(jù)并釋放磁盤(pán)空間的實(shí)現(xiàn)示例

    本文主要介紹了MySQL如何清理數(shù)據(jù)并釋放磁盤(pán)空間,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • MySQL自動(dòng)填充create_time和update_time的兩種方式

    MySQL自動(dòng)填充create_time和update_time的兩種方式

    當(dāng)我們創(chuàng)建業(yè)務(wù)表的時(shí)候 通常都需要設(shè)置create_time 和 update_time,下面這篇文章主要給大家介紹了關(guān)于MySQL自動(dòng)填充createTime和updateTime的兩種方式,需要的朋友可以參考下
    2022-05-05

最新評(píng)論