当我尝试使用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上更改某些配置?
谢谢!
答案 0 :(得分:3)
创建这样的SQL命令可能会导致SQL注入 - 正确的方法是使用SQL参数。
答案 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>
由于