拦截和修改Request.QueryString

lg3605119 2009-12-21 09:33:48
我现在想写一个PageBase 页面,所有的页面都继承 PageBase 。 我现在接手的一个项目是已经运行的项目,代码测试发现有很多SQL注入,我想通过这个PageBase 来替换所有的 Request.QueryString 变量,但是 Request.QueryString 变量是可读的,不能更改值变量。请问大家有啥好方法能解决此问题吗?
...全文
289 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
happy664618843 2009-12-21
  • 打赏
  • 举报
回复
up
amandag 2009-12-21
  • 打赏
  • 举报
回复
这个类要写在 App_Code目录下

web.Config配置
<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings />
<system.web>
<compilation debug="true"/>
<authentication mode="Windows"/>
<httpModules>
<add name="UrlRewriter" type="UrlRewriter,App_Code"/>
</httpModules>
</system.web>
</configuration>


如果你的UrlRewriter有命名空间 type="命名空间.类名, App_Code"
Jacky_xingkong 2009-12-21
  • 打赏
  • 举报
回复
6 lou na shi shen me yi si
lg3605119 2009-12-21
  • 打赏
  • 举报
回复
6楼的高手,你这个方法要不要在WEB.CONFIG文件中配置参数吗?
amandag 2009-12-21
  • 打赏
  • 举报
回复
使用HttpModule处理然后RewritePath应该就可以,类似于UrlRewrite

简单的Demo

public class UrlRewriter:IHttpModule
{
public UrlRewriter()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

#region IHttpModule 成员

public void Dispose()
{
throw new Exception("The method or operation is not implemented.");
}

public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}

void context_BeginRequest(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
//得到请求的路径
string requestUrl = app.Context.Request.Path;

if (requestUrl != null)
{
//你可以随意对requestUrl做判断和处理
string rewritePath = ...;
//最后重定向到自己的路径
app.Context.RewritePath(rewritePath);
}
}

#endregion
}
hitlcyu19 2009-12-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 silentwins 的回复:]
不改变,直接Redirect重定向之!
[/Quote]
2楼的方法试试
george010 2009-12-21
  • 打赏
  • 举报
回复
顶2楼
liujintaozyc 2009-12-21
  • 打赏
  • 举报
回复
不明白楼主意思
如果你是说拦截了后面的参数 貌似不行的 因为每个页面的参数可能不一样
是否明白楼主
silentwins 2009-12-21
  • 打赏
  • 举报
回复
不改变,直接Redirect重定向之!
netna 2009-12-21
  • 打赏
  • 举报
回复
不懂,顶

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧