上周接到学习任务做一个论坛,并且由刘哥提出了要求注意防止SQL的注入式攻击,于是在网上和书籍上搜索了一些比较常用的方法,比如加上replace等.后来听说利用SqlParameter提供的类的方法比较好.就研究了一下.
首先我们要了解何为注入式攻击,说白就是一些人利用SQL语句的漏洞利用一些带有'和"还有where的字符来对数据库的数据进行攻击的手段.具体的概念可以去网上搜索,会发现很多.我们防止注入式攻击最简单最低级的方法就是滤除掉用户输入的一些符号.比如'和"那么.利用SqlParameter类就可以很好的滤除掉一些非法符号.
下面说下我的实现过程.首先是我的用户输入框体是一个服务器端的textbox控件,命名为txtUserName.密码框体也为textbox控件.TextMode属性设置为Password.ID属性为txtUserPwd.
对首页登入按钮的Click事件内编写
首先是连接数据库的指令
如果不加入防止注入式攻击的代码,上面代码中的查询字符串的代码应该为
经过更改后.要利用SqlParameter进行有参数的存储过程的执行,代码如下
这样就实现了简单的防止注入式攻击的代码..