<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      什么是SQL注入?帶你從零開始認識SQL注入

      [摘要]從零開始認識SQL注入 ,什么是SQL注入?sql注入就是本來我只有我能操作數據庫,本來只是讓你輸入內容就走,而你卻輸入命令,從而在我不知情下操作數據庫SQL注入1.什么是SQL注入看一下下面的案例...
      從零開始認識SQL注入 ,什么是SQL注入?sql注入就是本來我只有我能操作數據庫,本來只是讓你輸入內容就走,而你卻輸入命令,從而在我不知情下操作數據庫

      SQL注入

      1.什么是SQL注入

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

      a.png

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

      b.png

      • 這時候對比兩條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可以避免注入攻擊;

      相關文章:

      一個自認為很安全的PHP防SQL注入 求破解

      深入了解SQL注入和預防措施

      相關視頻:

      防御sql注入-PHP實戰商城開發視頻教

      以上就是什么是SQL注入?帶你從零開始認識SQL注入的詳細內容,更多請關注php中文網其它相關文章!


      學習教程快速掌握從入門到精通的SQL知識。




      日韩精品一区二区三区高清