C# 从删除同步跟踪表代码中删除SQL注入漏洞

C# 从删除同步跟踪表代码中删除SQL注入漏洞,c#,sql,sync,microsoft-sync-framework,C#,Sql,Sync,Microsoft Sync Framework,我正在应用程序中使用Microsoft Sync Framework进行数据同步。 对于删除跟踪表,我使用以下代码。 当我使用此代码在dll上运行CAT.NET时,它显示了SQL注入漏洞。 有人能建议如何消除这个SQL注入问题吗。 有关上述代码的详细信息,您可以单击由于您依赖于外部DLL,因此无法对其执行任何操作 您可以将其转换为SP,并尽量避免使用内联语句 希望对您有所帮助。为什么您要手动删除这些对象,而不是简单地从同步框架中运行取消配置 即使使用上面的代码,也不会删除用户定义的表类型。

我正在应用程序中使用Microsoft Sync Framework进行数据同步。
对于删除跟踪表,我使用以下代码。

当我使用此代码在dll上运行CAT.NET时,它显示了SQL注入漏洞。
有人能建议如何消除这个SQL注入问题吗。


有关上述代码的详细信息,您可以

单击

由于您依赖于外部DLL,因此无法对其执行任何操作 您可以将其转换为SP,并尽量避免使用内联语句


希望对您有所帮助。

为什么您要手动删除这些对象,而不是简单地从同步框架中运行取消配置

即使使用上面的代码,也不会删除用户定义的表类型。

blink What external DLL?
SqlCommand comm;
StringBuilder sb = new StringBuilder();
//Drop tracking table & triggers
sb.AppendFormat(@"
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[{0}_tracking]') AND type in (N'U'))
DROP TABLE [dbo].[{0}_tracking]
IF EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[{0}_insert_trigger]'))
DROP TRIGGER [dbo].[{0}_insert_trigger]
IF EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[{0}_delete_trigger]'))
DROP TRIGGER [dbo].[{0}_delete_trigger]
IF EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[{0}_update_trigger]'))
DROP TRIGGER [dbo].[{0}_update_trigger]", tableName);

foreach (string procName in new string[] { "delete", "deletemetadata", "insert",    "insertmetadata", "update", "updatemetadata", "selectrow", "selectchanges" })
        {
sb.AppendFormat(@"IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[{0}_{1}]')  AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[{0}_{1}]", tableName, procName);
        }
using (comm = new SqlCommand(sb.ToString(), conn))
{
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
}