我有几个在aspnet中开发的web应用程序,最近我们的安全办公室使用ibm security appscan进行扫描,唯一发现的东西是来自登录页面的盲注SQL。我一直在使用所有应用程序中的参数化查询。我从登录中使用两层认证,一个是活动目录,然后是数据库。我很肯定他们是错误的,但是有没有办法摆脱错误信息?aspnet应用程序与IBM appcan之间的SQL注入漏洞
如果没有全面扫描,安全办公室将不会打开端口。我想知道你们是否遇到过这种情况。这太令人沮丧了!
谢谢!好的,谢谢你的回复。 我有标准的HTML用户名和密码文本框,和一个btnSubmit按钮,他们在contentplace持有人。 这里是后面的代码。首先对活动目录进行身份验证,如果成功,则再次验证数据库。这是数据库部分:
DatabaseProviderFactory factory=new DatabaseProviderFactory();
Database db =factory.CreateDefault();
DbCommand cmd = db.GetSqlStringCommand("SELECT count(*) FROM [dbo].[tbl_Admins] where [email protected] and active='Y'");
db.AddInParameter(cmd, "Username", DbType.String,HttpUtility.HtmlEncode(txtUsername.Text.Trim()));
int thisAdmin = Convert.ToInt32(db.ExecuteScalar(cmd));
// cmd.Dispose();
如果(thisAdmin> 0){
Response.Redirect("default.aspx");
} ...从扫描
错误消息: 严重性:高 CVSS分数:9.7 URL: 实体:ctl00 $ ContentPlaceHolder1 $ btnSubmit(参数) 风险:可以查看,修改或删除数据库条目和表格 原因:在用户输入上未正确执行危险字符的卫生
您将不得不提供更多信息。你需要提供一些代码或一个非常具体的问题。对于调试技术,请尝试遵循登录页面的请求并查看命中数据库的内容。 – ircmaxell
这是一个AppScan问题,而不是一个asp.net问题。有足够的信息可以识别发生的特定AppScan问题。应该从问题中移除标志。 – BranLakes
@BranLakes否,因为没有显示代码,所以不可能知道是否真的存在SQLi漏洞。所以不可能判断它是否是假阳性。使用准备好的语句不是一个银子弹... – ircmaxell