首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从删除同步跟踪表代码中删除SQL注入漏洞

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

Stack Overflow用户
提问于 2014-01-01 14:18:07
回答 2查看 150关注 0票数 0

我在我的应用程序中使用Microsoft来同步数据。

用于删除跟踪表,我正在使用下面的代码。

代码语言:javascript
复制
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();
}

当我使用此代码在dll上运行CAT.NET时,它显示了SQL注入漏洞。

有人能建议如何消除这个SQL注入问题吗?

有关上述代码的更多信息,您可以

单击这里

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-01 14:26:54

由于您依赖外部DLL,所以您无法使用它来处理,您可以将其转换为SP,并尽量避免内联语句。

希望有帮助。

票数 1
EN

Stack Overflow用户

发布于 2014-01-02 12:40:42

为什么要手动移除这些对象,而不是简单地从同步框架内运行撤销?

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20869517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档