ASP.NETURL地址防注入过滤问题
首先在Global.asax.cs里面配置一个 提交事件 不用过滤所有的地址 过滤 GET POST的地址就行了
/// <summary>
/// 防止sql注入
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_BeginRequest(Object sender, EventArgs e)
{
//过滤Post参数
string url = this.Request.Url.ToString();
if(this.Request.Form.Count>)
{
string filterUrl = FilterUrl(url);
if (!url.Equals(filterUrl))
{
this.Response.Redirect(filterUrl);
}
}
//过滤Get参数
if(this.Request.QueryString.Count>)
{
string filterUrl = FilterUrl(url);
if (!url.Equals(filterUrl))
{
this.Response.Redirect(filterUrl);
}
}
}
/// <summary>
/// 过滤特殊字符
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
private string FilterUrl(string url)
{
string replaceStr = url;
if (!string.IsNullOrEmpty(url))
{
replaceStr = replaceStr.ToLower();
replaceStr = replaceStr.Replace("<", "");
replaceStr = replaceStr.Replace(">", "");
replaceStr = replaceStr.Replace("|", "");
replaceStr = replaceStr.Replace("\"", "");
replaceStr = replaceStr.Replace("'", "");
replaceStr = replaceStr.Replace("%", "");
replaceStr = replaceStr.Replace(";", "");
replaceStr = replaceStr.Replace("(", "");
replaceStr = replaceStr.Replace(")", "");
replaceStr = replaceStr.Replace("+", "");
replaceStr = replaceStr.Replace("script", "");
replaceStr = replaceStr.Replace("alert", "");
replaceStr = replaceStr.Replace("select", "");
replaceStr = replaceStr.Replace("update", "");
replaceStr = replaceStr.Replace("insert", "");
replaceStr = replaceStr.Replace("like", "");
replaceStr = replaceStr.Replace("applet", "");
replaceStr = replaceStr.Replace("body", "");
replaceStr = replaceStr.Replace("embed", "");
replaceStr = replaceStr.Replace("frame", "");
replaceStr = replaceStr.Replace("html", "");
replaceStr = replaceStr.Replace("iframe", "");
replaceStr = replaceStr.Replace("img", "");
replaceStr = replaceStr.Replace("style", "");
replaceStr = replaceStr.Replace("layer", "");
replaceStr = replaceStr.Replace("link", "");
replaceStr = replaceStr.Replace("ilayer", "");
replaceStr = replaceStr.Replace("meta", "");
replaceStr = replaceStr.Replace("object", "");
}
return replaceStr;
}
下面是图解:


ASP.NETURL地址防注入过滤问题的更多相关文章
- ASP防注入
因为在改进公司的一套ASP代码,所以考虑了一下防注入的问题. 参考了网上的几处代码,进行了修改和整合,都转换成小写再处理. 还考虑了script注入. 代码如下: 'Asp防注入代码 SQL_injd ...
- php过滤参数特殊字符防注入
分享一例php实现过滤提交的参数数据以防止注入的代码,有需要的朋友参考下. 本节内容: php过滤特符字符,php防注入. in: 后端程序 例子: 代码示例: <?php /** * 安全防范 ...
- 【转载】C#防SQL注入过滤危险字符信息
不过是java开发还是C#开发或者PHP的开发中,都需要关注SQL注入攻击的安全性问题,为了保证客户端提交过来的数据不会产生SQL注入的风险,我们需要对接收的数据进行危险字符过滤来防范SQL注入攻击的 ...
- 特殊字符的过滤方法,防sql防注入代码的过滤方法
特殊字符的过滤方法 function strFilter($str){ //特殊字符的过滤方法 $str = str_replace('`', '', $str); $str = str_replac ...
- SQL防注入程序 v1.0
/// ***************C#版SQL防注入程序 v1.0************ /// *使用方法: /// 一.整站防注入(推荐) /// 在Global.asax.cs中查找App ...
- asp中cookie欺骗/注入原理与防范
一直以来sql注入被广泛关注,也有专门的防注系统代码.发现,如果代码不严谨也会有cookie欺骗/注入的情况.原来, 防注入系统没有注意到 Cookies 的问题!这里以ASP为例,分析一下cook ...
- 简单实用的PHP防注入类实例
这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下 本文实例讲述了简单实用的PHP防注 ...
- [转]PDO防注入原理分析以及使用PDO的注意事项
原文:http://zhangxugg-163-com.iteye.com/blog/1835721 好文章不得不转. 我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答 ...
- SQL防注入程序
1.在Global.asax.cs中写入: protected void Application_BeginRequest(Object sender,EventArgs e){ SqlIn ...
随机推荐
- Beauty of Array(思维)
Beauty of Array Time Limit: 2 Seconds Memory Limit: 65536 KB Edward has an array A with N integ ...
- ffmpeg API录制rtsp视频流
原文出自http://blog.csdn.net/zxwangyun/article/details/8190638#reply 作者 Sloan 这里在录制时,并没有进行转码,只是相当于把rts ...
- 更新-----Scripts:执行双网卡绑定
#!/bin/bash #------------------------------------------------------------------------------- # Name: ...
- R学习笔记
把学习过程记载下来,加深印象,到时要是忘了也容易查,有需要的同学也可以参考: 1.包的安装:两种方法:一种通过R的菜单,先设定cran镜像,然后安装程序包,会出来一个列表,选择相应程序包安装,安装完毕 ...
- Ubuntu下嵌入式Qt开发环境配置全攻略
http://qpcwth.blog.163.com/blog/static/20993024620139151424822/ 在安装的过称中,出现一些问题,注意试想: 1.本次开发环境的配置,是基于 ...
- Bootstrap的datepicker控件
为input 控件的text 添加datepicker()方法后,原本的控件change事件无法正常触发.原因是项目中同时使用了用了jquery ui,碰巧它里面也有一个datepicker,名字一模 ...
- 深入浅出SlidingMenu
如果想直接查看源码的话可以从我的Github上下载查看:https://github.com/zhanghuijun0/demo-for-android/tree/master/SlidingMenu ...
- URI--http://zh.wikipedia.org/wiki/%E7%BB%9F%E4%B8%80%E8%B5%84%E6%BA%90%E6%A0%87%E5%BF%97%E7%AC%A6
维基百科,自由的百科全书 在电脑术语中,统一资源标识符(Uniform Resource Identifier,或URI)是一个用于标识某一互联网资源名称的字符串. 该种标识允许用户对网络中( ...
- 2015.4.10-SQL 高级查询(二)
1.TOP字句: 用于规定要返回的记录的数目 select top number(个数)/percent(百分数) 列名 from 表名 2.like模糊查询,用于where字句中,以及通配符 ...
- H5 progress标记
进度条标记 示例:<progress class="processbar" id="processbar" max="100" val ...