SQL查询和特殊字符

时间:2011-04-19 08:28:32

标签: asp.net sql-server

当我尝试使用SQL Server数据库上包含'>','%'和其他特殊字符的值进行INSERT查询时,我遇到了问题...

应用程序当然是ASP Net Web应用程序(C#)

我准备插入查询的方式是:

string Query1 = 
    "UPDATE message SET message = '" + mymessage + "' " + 
    "WHERE  operationType = '" + value_operationType + "' " + 
    "AND    languageType = '" + value_languageType + "';";

使用IIS 7我没有这个问题但是使用IIS 6我有它。

我是否应该在IIS 6上更改某些配置?

谢谢!

3 个答案:

答案 0 :(得分:3)

创建这样的SQL命令可能会导致SQL注入 - 正确的方法是使用SQL参数。

看看: C# Update Table using SqlCommand.Parameters ASP.NET

答案 1 :(得分:0)

您知道,这是一种运行查询的危险方式,因为有人可以放弃您的整个数据库,如果他们知道如何,并且可能会在某一天发生!

在回答原始问题时,您可以对值进行HTML编码:

string htmlEncodedMessage = Server.HtmlEncode(mymessage);

string Query1 = 
    "UPDATE message SET message = '" + htmlEncodedMessage + "' " + 
    "WHERE  operationType = '" + value_operationType + "' " + 
    "AND    languageType = '" + value_languageType + "';";

我强烈建议您查看其他数据库操作方法,例如LINQ to SQL。

答案 2 :(得分:0)

为了回答我的问题,因为同事能够提供它,解决方案是在web.config上添加这一行:

<system.web>
   ...   
   <httpRuntime requestValidationMode="2.0" />
   ...
</system.web>

由于