TableAdapters SQL 注入

2023-12-12

您好,我正在使用一个数据集,在该数据集中我有一个表适配器。在我的表适配器中,我使用存储过程作为查询。如果我使用以下行通过表适配器插入表单数据,是否可以安全地防止 SQL 注入?谢谢。

UserDataSetTableAdapters.UserInformationTableAdapter myFactory = new TestProject.UserDataSetTableAdapters.UserInformationTableAdapter();
            myFactory.spTest_InsertUserInformation(id, frmAddress);

如果不发布您的存储过程代码,就无法真正回答您的问题,但您可能可以自己回答。


SQL 注入攻击源于用户输入的数据进入动态生成和执行的 SQL 查询。使用存储过程通常通过将参数作为参数传递来避免此问题,从而不会动态生成 SQL。过程会自动封装,不会成为原始 SQL 查询文本的一部分。

以下面为例:

SELECT *
FROM myTable
WHERE myId = @ID;

作为参数,您可以安全地设置@ID到“21;删除表 myTable;”。它将为您转义,并且整个字符串将与 myId 进行比较。但是,如果您动态生成 SQL 查询,例如

string query = "SELECT *\nFROM myTable\nWHERE myId = " + userEnteredText + ";";

现在你会得到以下内容:

SELECT *
FROM myTable
WHERE myId = 21; DROP TABLE myTable;;

Ouch.


因此,回答您的问题:如果您的存储过程没有根据其参数动态生成 SQL,并且EXEC他们,你应该是安全的。

注意:当然,这依赖于您的 .NET 数据提供程序使用参数调用过程而不生成动态 SQL 语句。大多数人都能正确执行此操作,但如果您使用第三方提供商,则应在确保安全之前仔细检查这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TableAdapters SQL 注入 的相关文章

  • 嵌入式二进制资源 - 如何枚举嵌入的图像文件?

    我按照中的说明进行操作这本书 http www apress com book view 9781430225492 关于资源等的章节 我不太明白的是 如何替换它 images Add new BitmapImage new Uri Ima
  • 使用 .Net 创建 CalDAV 服务

    我想在我的应用程序中创建一个外部用户可以查看的日历 CalDAV 基本上是 WebDAV iCalendar 格式似乎得到了相对广泛的支持 尽管某些客户端 例如 Outlook 不太支持这种格式 不过对我来说完全是新的 我想外部发布事件 我
  • 如何衡量字符串的复杂度?

    我有一些长字符串 1 000 000 个字符 每个字符串仅包含定义字母表中的符号 例如 A 1 2 3 示例字符串 string S1 1111111111 meta complexity 0 string S2 1111222333 me
  • 使用 System.IO.compressing.Gzip 压缩和解压缩非常大的文件

    我的问题可以用以下语句来描述 我希望我的程序能够压缩和解压缩选定的文件 我有非常大的文件 20 GB 可以安全地假设该大小永远无法装入内存 即使压缩后 压缩文件可能仍然无法放入内存 我想使用 System IO Compression Gz
  • 文件是通过 Visual Studio 下载的,但不是通过 .exe 下载的

    当我尝试下载 a 时出现以下错误 pdf通过我的网址从文件 exe file 服务器违反了协议 部分 响应头 详细信息 CR 后必须跟 LF 但当我尝试从 Visual Studio 调试代码时 也会下载同样的内容 我完全迷失了 不知道发生
  • COM多线程支持

    第一次使用COM我有这个 COM dll 比如 ABCServer dll 我创建了一个 RCW 并在我的项目中添加了对它的引用 现在 我的应用程序创建了多个线程 每个线程从 COM dll 创建某些类并使用它们 但是 当其他线程正在处理
  • 如何记录所有抛出的异常?

    如何记录抛出和捕获的任何异常 就像 Visual Studio 的 IntelliTrace 所做的那样 或者有没有办法将 InteliTrace 集成到应用程序的调试版本中 然后查看其日志 Update 我会稍微澄清一下 我想要标准 tx
  • 从网络共享运行 .NET 4.0 应用程序时出现异常

    我有一个 NET 4 0 C 控制台应用程序 该应用程序被部署到网络文件共享 我相信是 Windows 2000 Server 文件服务器 如下所示 server share Apps Beta Group JobName JobName
  • 什么是数组的浅拷贝

    当您调用 ArrayList 的 Clone 方法时 将创建列表的浅表副本 什么是数组的浅拷贝 如果 ArrayList 中有引用 则相同的引用将被复制到克隆的 ArrayList 中 对象不会被克隆
  • __FUNCTION__ 宏的 C# 版本

    有人对 C FUNCTION 宏的 C 版本有好的解决方案吗 编译器似乎不喜欢它 尝试使用这个代替 System Reflection MethodBase GetCurrentMethod Name C 没有 LINE or FUNCTI
  • 当格式字符串包含“{”时,String.Format 异常

    我正在使用 VSTS 2008 C Net 2 0 执行以下语句时 String Format 语句抛出 FormatException 有什么想法是错误的吗 这是获取我正在使用的 template html 的位置 我想在 templat
  • Winforms——多选下拉列表

    我正在寻找一个允许我选择多个项目的下拉列表控件 类似于 CheckedListbox 但采用下拉列表形式 我不希望它占据屏幕的很大一部分 此时我非常确信 NET 中不存在这样的内置控件 请注意 这是 Winforms 而不是 ASP NET
  • Microsoft.Bcl.Async 中是否有 ExceptionDispatchInfo 的类似物?

    有没有类似的ExceptionDispatchInfo http msdn microsoft com en us library system runtime exceptionservices exceptiondispatchinfo
  • SqlConnection - 是远程连接还是本地连接?

    如果我有 SqlConnection 对象 如何确定它是本地连接 localhost 或 127 0 0 1 还是远程连接 本地区域的其他计算机 使用连接询问 SQL 语句 SELECT SERVERNAME 然后验证这是否与客户端计算机的
  • 使用 WebClient 在 PowerShell 脚本中将 FTP 从二进制更改为 ascii

    简单的 PowerShell 脚本 它可以毫无问题地下载文件 二进制 我需要它的ascii 格式 File c temp ftpfile txt ftp ftp myusername email protected cdn cgi l em
  • 在音频文件中查找音频样本(频谱图已存在)

    我正在努力实现以下目标 使用 Skype 拨打我的邮箱 有效 输入密码并告诉邮箱我要录制新的欢迎信息 有效 现在 我的邮箱告诉我在嘟嘟声后录制新的欢迎消息 我想等待蜂鸣声然后播放新消息 不起作用 我如何尝试实现最后一点 使用 FFT 和滑动
  • 静态构造函数和 BeforeFieldInit?

    如果类型没有静态构造函数 则将执行字段初始值设定项 就在使用该类型之前 或者在某个时间点突发奇想 运行时 为什么这段代码 void Main start Dump Test EchoAndReturn Hello end Dump clas
  • EntityHydrate 任务失败

    我最近安装了 Visual Studio 11 Beta 和 Visual Studio 2010 之后 我无法在 Visual Studio 2010 中构建依赖于 PostSharp 的项目 因此我卸载了 Visual Studio 1
  • 调整屏幕和字体设置的 WPF 应用程序(或者,我如何将 DLU 与 WPF 中的单元相关联?)

    在MFC中 对话框的设计使用DLUs http msdn microsoft com en us library bb847924 aspx 在 WPF 中 我们以 1 96 英寸为单位指定 虽然这确实会缩放窗口和视觉元素 但我们如何使 W
  • 如何组合两个 lambda [重复]

    这个问题在这里已经有答案了 可能的重复 在 C 中组合两个 lambda 表达式 https stackoverflow com questions 1717444 combining two lamba expressions in c

随机推荐