代码之家  ›  专栏  ›  技术社区  ›  REZR.AMX

SQL注入示例C#SQL[重复]

  •  0
  • REZR.AMX  · 技术社区  · 12 年前

    好的。我想知道一些关于SQL注入的信息。

    我有一个数据库,有两个表,一个是Logins,另一个是Orders。 我有一个非参数化的SQL查询,如下所示。

    // Select_Button click event 
    //connection con
    //command comm
    comm.commandtext = "Select * from Logins where User_na='"+textBox1.text+" Pass_wrd='"+textBox2.text+"'";
    //Execute reader
    
    //Insrt_button Event
    //connection ins_con
    //command ins_comm
    ins_comm.commandText = "Insert Into Logins(User_na, Pass_wrd) values ('"+textBox3.text+'", '"+textBox4.text+"'")";
    //Execute non-query
    

    现在我想知道我的数据库怎么会受到SQL攻击。例如,我如何删除数据库中的其他数据表。?有可能吗?

    我们非常感谢您的任何帮助。

    1 回复  |  直到 12 年前
        1
  •  4
  •   Steve    12 年前

    只是为了说明Sql注入是多么简单,除了破坏数据之外,还会导致其他恶劣的影响

    textbox1.Text = "' OR User_na LIKE '%'; --";
    

    生成的comm.CommandText为

    comm.commandtext = @"Select * from Logins where User_na='' OR User_na LIKE '%'--pass_wrd= 'xxx'";
    SqlDataReader r = cmd.ExecuteReader();
    if(r.HasRows)
    {
        MessageBox.Show("The poor programmer was tricked by a smart hacker");
        .....
    }
    

    那么根据您如何检查查询结果,未经验证的用户可以访问您的程序