ASP.NET 过滤类 SqlFilter,防止 SQL 注入
什么是 SQL 注入?
我理解的 sql 注入就是一些人可以通过恶意的参数输入,
让后台执行这段 SQL,然后达到获取数据或者破坏数据库的
目的!
举个简单的查询例子,后台 sql 是拼接的:select * from
Test where name='+参数传递+';前台页面要求输入 name,
那么黑客可以输入: ';DROP TABLE Test;-- 不要小瞧
这一段 SQL 代码:
select * from Test where name=' ';DROP TABLE Test;--';
在 SQL 中是正确的,可执行的,但是执行后整个 Test 表都
删除了,网站崩溃!
最好的解决方法
最好的办法就是不写拼接 SQL,改用参数化 SQL,推荐
新项目使用。这里不做介绍,感兴趣的朋友可以自行搜索一
下,本文介绍的方法适合老项目,就是没有使用参数化 SQL
开发的程序。
使用过滤函数来过滤
将 SQL 一些危险的关键字,还有注释百分号以及分号这
些根本在我们正常写代码的时候根本不会出现的字符都过