0

我正在寻找各种软件中的后门,并想知道以下代码是否容易受到 sql 注入的影响。

有一个带有以下验证表达式的电子邮件字段。(ASPX/CS)

ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">

是否可以利用上述方法删除表或使用 SQL 注入做任何恶意行为?

感谢和问候

编辑 1:人们问我这是如何实现的——</p>

SqlConnection conn = new SqlConnection(snpConnectionString);
SqlCommand command = conn.CreateCommand();
conn.Open();
command.CommandText = "INSERT INTO TABLE_ VALUES ('" + TextBoxFN.Text + "','" + TextBoxLN.Text + "','" + sb1.ToString() + "','" + TextBoxEA.Text + "','" + sb.ToString() + "',0,'" + DateTime.Now + "')";
try{
    SqlDataReader reader = command.ExecuteReader();
}
catch
{
    Response.Redirect("Error.aspx", true);
}

TextBoxEA.text 对应于电子邮件地址。

4

2 回答 2

2

正则表达式验证非常适合 UI 或业务层检查用户输入以防止错误。

它对于防止 SQL 注入不太好。

如果代码不使用参数化查询,那么它现在或稍后在更新正则表达式以符合新的业务需求时出现小错误后都容易受到攻击。

于 2012-11-27T01:48:32.593 回答
1

最好使用像 Eric 所说的参数化查询,但是查看正则表达式时,只有以下字符是有效的

A-Za-z0-9_-+.'

如果没有空格,我认为他们无法注入 SQL,但如果是我,我仍然会确保使用参数化查询以确保安全。

于 2012-11-27T01:58:24.653 回答