91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL注入指的是什么

發布時間:2021-06-08 13:49:41 來源:億速云 閱讀:121 作者:小新 欄目:MySQL數據庫

小編給大家分享一下SQL注入指的是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

SQL注入

1.什么是SQL注入

  • 看一下下面的案例場景,這是正常情況下的登陸場景:

SQL注入指的是什么

  • 而當我們使用 用戶名‘:– 的時候,密碼隨便輸入也可以登陸成功↓

SQL注入指的是什么

  • 這時候對比兩條sql就能發現,其實用戶通過在用戶名寫入的sql符號將內部sql提前結束,并且將后半句檢索條件注釋起來達到免密碼登陸效果。

sql注入就是本來我只有我能操作數據庫,本來只是讓你輸入內容就走,而你卻輸入命令,從而在我不知情下操作數據庫

2.漏洞的修復

  • 會產生上門面的情況是因為上面的sql是使用動態拼接的方式,所以sql傳入的方式可能改變sql的語義。

動態拼接就是在java中java變量和sql語句混合使用:select * from user where userName=’”+userName+”’ and password = ‘”+password”’

  • 所以要使用preparedStatement的參數化sql,通過先確定語義,再傳入參數,就不會因為傳入的參數改變sql的語義。(通過setInt,setString,setBoolean傳入參數)

3.參數化sql使用案例

            //建立數據連接
            conn=ds.getConnection();
            //1.設置prepareStatement帶占位符的sql語句
            PreparedStatement ptmt = conn.prepareStatement("select * from user where userName = ? and password = ?");
            ptmt.setString(1, "張三");      //2.設置參數
            ptmt.setString(2, "123456");
            rs=ptmt.executeQuery();     

            while(rs.next()){
                System.out.println("登陸成功");
                return;
            }
            System.out.println("登陸失敗");

參數化特點:

1.設置preparedStatement帶占位符的sql語句

statement執行sql語句的方式:

stmt=conn.createStatement();
rs=stmt.executeQuery("select userName from user");

2.設置參數

PerparedStatement繼承于Statement,這里主要使用的使他參數化sql的特性。

轉:https://blog.csdn.net/qq_30258957/article/details/78145885

加:1.都是用來執行SQL的 PreparedStatement extends Statement;

2.Statement適合執行靜態(無條件)SQL  PreparedStatement適合執行動態(有條件)SQL;

3.PreparedStatement可以避免注入攻擊;

以上是“SQL注入指的是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節
推薦閱讀:
  1. SQL注入
  2. sql注入原理

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

苏尼特右旗| 泰和县| 唐山市| 封丘县| 于都县| 盐池县| 周口市| 商城县| 垦利县| 昆山市| 柳州市| 长岭县| 申扎县| 弥勒县| 焦作市| 瓦房店市| 温宿县| 道孚县| 墨江| 佛山市| 孙吴县| 新化县| 盈江县| 贵南县| 新巴尔虎左旗| 开远市| 荆州市| 湘潭县| 博兴县| 青冈县| 丰宁| 攀枝花市| 石泉县| 文山县| 隆回县| 洛扎县| 临清市| 大余县| 赤峰市| 宜城市| 阿合奇县|