SQL注入漏洞

本文关键字:漏洞 注入 SQL | 更新日期: 2023-09-27 18:17:58

我们有一个ASP。NET/C #网站。我们的开发人员在亚洲,我刚刚发现他们在网站前端放置原始SQL。

我担心我们现在容易受到SQL注入攻击。有谁知道我如何检测网站上的漏洞,以及关闭它们的最好方法是什么?

SQL注入漏洞

尝试从前面检测漏洞可能会有所帮助,但实际上您应该查看代码,特别是与DbCommand, SqlCommand等相关的所有代码。正如您清楚知道的那样,关键是永远不要将用户输入连接到查询中,而是将其参数化。有一些很好的工具可以使这种参数化变得容易——或者至少比手动操作更容易。例如,如果您有:

using(var cmd = conn.CreateCommand()) {
    cmd.CommandText = "delete from Orders where id = " + id;
    cmd.ExecuteNonQuery();
}

那么像dapper-dot-net这样的工具将允许你做这样的事情:

conn.Execute("delete from Orders where id = @id", new {id});

代码比少,主要是复制粘贴,但完全是注入安全的,并允许查询计划重用。

看看潦草或Acunetix

这些工具扫描一个网站的漏洞,特别是SQL注入。另一种方法是与PCI-DSS合规公司之一签约。我们使用SecurityMetrics,通常银行会提供折扣。

先看看这篇文章:如何在ASP中防止SQL注入。净

我会确保所有的你要么使用存储过程专门或如果你有常规sql命令你使用它们只与参数和永远不会动态构建CommandText属性的内容

那么,我会命令他们发送源代码给你并执行代码视图(或由相对有经验的开发人员完成)。