当前位置:高校自动化网 >> sql >> 浏览文章

asp.net防sql注入的简单方法

文章来源:本站原创 作者:佚名


该文章讲述了asp.net防sql注入的简单方法.

SQL注入式攻击是指利用设计上的漏洞,在目标服务器上运行SQL命令以及进行其他方式的攻击,动态生成SQL语句时没有对用户输入的数据进行验证。

SQL注入式攻击是一种常规性的攻击,可以允许一些不法用户检索他人的数据,改变服务器的设置,或者在他人不小心的时候破坏其服务器。SQL注入式攻击不是SQL Server问题,而是不适当的程序。
要防范SQL注入式攻击,应该注意以下几点。
(1)检查输入的SQL语句的内容,如果包含敏感字符,则删除敏感字符,敏感字符包括'、、=、!、-、 、*、/、()、|和空格等。
(2)不要在用户输入过程中构造WHERE子句,应该利用参数来使用存储过程。
说明:SQL注入一般出现在程序开发构造一个WHERE子句伴随着用户输入的时候。
在ASP.NET中可以自定义一个方法过滤非法字符,该方法如下:
以下是引用片段:///summary///防止SQL注入试攻击////summary///param name="inputString"用户输入字符串/param public string ConvertSql(string inputString){inputString=inputString.Trim();inputString=inputString.Replace("'","''");inputString=inputString.Replace(";--","");inputString=inputString.Replace("=","");inputString=inputString.Replace("or","");inputString=inputString.Replace("and","");return inputString;}
使用以上方法在C#中不是最佳有效的途径,最佳途径是通过SqlCommand.Parameters属性的参数传值实现,将非法字符过滤掉。主要代码如下。
以下是引用片段:myCommand.Parameters.Add(new SqlParameter("@loginName",SqlDbType.NVarChar,20));myCommand.Parameters["@loginName"].Value=loginName;myCommand.Parameters.Add(new SqlParameter("@loginPwd",SqlDbType.NVarChar,20));
myCommand.Parameters["@loginPwd"].Value=loginPwd;
 

相关文章:
上一篇:5个步骤在XP安装SQL2005企业版
下一篇:sql2005 提示说sa用户登录失败
最近更新