我正在寻找各种软件中的后门程序,并想知道以下代码是否容易受到SQL注入攻击。
有一个包含以下验证表达式的电子邮件字段。 (ASPX / CS)
ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">
是否有可能利用上述内容删除表格或使用SQL注入做任何恶意行为?
由于 此致
编辑1:人们问我这是如何实现的 -
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对应于电子邮件地址。
答案 0 :(得分:2)
正则表达式验证非常适合UI或业务层检查用户输入以防止错误。
防止SQL注入效果不佳。
如果代码不使用参数化查询,则现在或者稍后有人在更新正则表达式时发生轻微错误以符合新的业务需求时,它很容易受到攻击。
答案 1 :(得分:1)
最好使用像Eric所说的参数化查询,但是看看正则表达式只有以下字符有效
A-Za-z0-9_-+.'
没有空格我不认为他们可以注入SQL,但如果是我,我仍然会确保使用参数化查询是安全的。