关于sql注入,已经被很多人讨论过了。这篇没有新意功能也不够通用,nnd,不想引起口水,就是觉得简单而且思路有参考性才贴出来。
1、新建一个类,实现IHttpModule接口
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif?x-oss-process=image/resize,w_1400/format,webp)
在实现接口的Init方法时,我们选择了AcquireRequestState事件,为什么不是Begin_Request事件呢?这是因为我们在处理的时候可能用到session,而Begin_Request事件执行的时候还没有加载session状态(关于HttpModule可以参考这一篇)。
2、对网站提交的数据进行处理
(1)、GET方式
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif?x-oss-process=image/resize,w_1400/format,webp)
(2)、POST方式
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif?x-oss-process=image/resize,w_1400/format,webp)
完整代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif?x-oss-process=image/resize,w_1400/format,webp)
3、在web项目中应用
只要在web.config的httpModules节点下面添加如下配置即可。
< add name ="SqlHttpModule" type ="DotNet.Common.WebForm.SqlHttpModule, DotNet.Common.WebForm" ></ add >
</ httpModules >
需要说明的是,这个防止sql注入的方法在特定的小项目中还是很简洁高效的,但是不通用,通常我们都是选择参数化(利用orm或者ado.net的参数化)方式防止sql注入。
附:asp.net在网页头部引入js脚本的简单方法
asp.net开发少不了JavaScript的辅助。在通常项目中,js文件都组织在一个公共目录如js文件夹下。随着项目的深入,你会发现js脚本文件越来越多,公共的脚步库越来越庞大。实际使用的时候,我们通常都是在页面中通过 <script src="..." type="text/javascript" >形式引入js文件,而且引入的越来越多。下面我们就来简单讨论在每个页面引入公共脚本库的统一方式,而不用每个页面都是很多<script src="..." type="text/javascript" >的形式。
和我们以前的做法一样,定义一个页面基类叫BasePage,事件和方法如下:
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif?x-oss-process=image/resize,w_1400/format,webp)
这样就简单地解决了引入公共js的问题。同样的原理,你也可以引入其他类型的文件,如css等。
本文转自JeffWong博客园博客,原文链接:http://www.cnblogs.com/jeffwongishandsome/archive/2009/12/23/1512551.html,如需转载请自行联系原作者