使用 oledb 连接 (.NET) 时出现 SQL 注入语法错误

问题描述 投票:0回答:1

我正在尝试对 oledb 连接进行 SQL 注入,当我输入

value #
.

时出现语法错误

我不明白为什么会这样,因为这样做:

value' or '1'='1
正在工作。

OleDbConnection Con = new OleDbConnection();
Con.ConnectionString = @"provider=microsoft.ACE.oledb.12.0;data source=" + Server.MapPath("") + "\\database.accdb";

Con.Open();

string sqlstring = "select * from users WHERE myusername = '"+InputUserName.Text+"' AND mypassword ='"+InputPassWord.Text+"'";

OleDbCommand Cmd = new OleDbCommand(sqlstring, Con);
OleDbDataReader dr1 = Cmd.ExecuteReader();

if (dr1.HasRows)
{
    dr1.Read();
    Response.Redirect("connectionSuccesful.aspx");
}
else
    Label1.Text = "not valid username or password";

我也试过:

           string sqlstring = $"select * from sellers WHERE Myusername = '{InputUserName.Text}' -- AND Mypassword ='{InputPassWord.Text}'";
但它又给我语法错误。我正在使用 Microsoft 访问数据库并使用 oledb 阅读器。

c# asp.net ms-access sql-injection
1个回答
1
投票

根据这个SQL#符号是什么意思,怎么用?

#
符号是用来给临时表加前缀的。它不用于注释 SQL 表达式的其余部分,您应该在注释该行的其余部分时尝试
--

编辑:

#
仅用作 MySQL 中的注释(再次根据上面的 StackOverflow 问题)

编辑 2:根据以下问题如何在 Microsoft Access 中注释掉 SQL 代码?您不能在 Microsoft Access 数据库中进行注释,这就是您出现语法错误的原因。

© www.soinside.com 2019 - 2024. All rights reserved.