.net visualbasic2008中的SQL注入

.net visualbasic2008中的SQL注入,.net,sql-injection,.net,Sql Injection,好吧,我读过关于SQL注入的文章,但我没有意识到它可能发生在Visual Basic.NET中——我使用的是2008年——因为我刚刚在PHP中读到它,我的问题是:我如何避免这种情况?因为一个朋友几分钟前做的,这是我桌面应用程序的安全问题 -谢谢-这同样适用于所有语言: 当您可以使用准备好的语句访问数据库时。避免通过将用户输入合并到查询中来构建数据库查询 认真验证要在数据库语句中使用的任何数据。如果字段应该是整数,请在数据库中使用它之前检查它是否是整数 如果存在某种形式的ORM,它可能会为您提供#

好吧,我读过关于SQL注入的文章,但我没有意识到它可能发生在Visual Basic.NET中——我使用的是2008年——因为我刚刚在PHP中读到它,我的问题是:我如何避免这种情况?因为一个朋友几分钟前做的,这是我桌面应用程序的安全问题


-谢谢-

这同样适用于所有语言:

  • 当您可以使用准备好的语句访问数据库时。避免通过将用户输入合并到查询中来构建数据库查询
  • 认真验证要在数据库语句中使用的任何数据。如果字段应该是整数,请在数据库中使用它之前检查它是否是整数
  • 如果存在某种形式的ORM,它可能会为您提供#1和#2(至少在某种程度上是#2)。LINQ应该帮你处理这件事。如果选择使用Linq,请使用SqlParameter生成查询
  • 如果可能,请使用存储过程
  • 注意用户输入,即使在它被存储之后
    SQL注入攻击不是特定于语言的。如果您接受用户输入并将其直接插入到SQL查询中,而未对其进行清理,则应用程序易受SQL注入攻击

    有关如何避免SQL注入攻击的更多详细信息,请参阅


    您应该从中吸取的一般想法是永远不要信任用户输入

    转义字符串?这是我在Stackoverflow上见过的最模糊的问题。添加更多细节。尝试包含一些代码。基本上你使用参数化查询。在这里搜索你会找到很多关于它的东西。谢谢,这就是我正在做的()Thanx,但我的意思是没有功能或类似的东西?比如在PHP中,在哪里创建代码来避免这些问题?在PHP中,不应该使用mysql\u real\u escape()之类的东西,而应该使用MySQLi进行参数化查询。类似地,在VB.NET中,您应该使用LINQ和SqlParameter()来构建查询。