回覆列表
  • 1 # dadazhu1

    不知道樓主用沒有用過

    select * from tab_name where name= ""+name+"" and passwd=""+passwd+"";

    把其中passwd換成 [" or "1" = "1] 這樣就可以完成sql注入

    更有可能對你的資料庫表drop操作

    如果使用preparedstatement的話就可以直接使用預編譯,PreparedStatement不允許在插入時改變查詢的邏輯結構.

    舉例

    statement

    select * from tab_name where name= ""+name+"" and passwd=""+passwd+"";

    passwd就可以換成 ‘ or "1"="1

    Statement stmt = con.createStatement();

    ResultSet rs = stmt.executeQuery(sql);

    preparedstatement

    select * from tab_name where name=? and passwd=? ;

    PreparedStatement pst = con.prepareStatement(sql);

    pstmt.setString(1, name);

    pstmt.setString(2, passwd);

    ResultSet rs = pstmt.executeQuery();

  • 中秋節和大豐收的關聯?
  • 德拉季奇現在在熱火如日中天,為什麼當年在火箭一直不被人重視?