解决asp.net跨站点请求伪造的简单手段以及遇到的问题
2014-07-04 14:25
621 查看
借鉴:http://blog.csdn.net/hnwanghb/article/details/7920674
在aspx页面的 override protected void OnInit(EventArgs e)事件里,添加一句代码:
Page.ViewStateUserKey = Session.SessionID;
override protected void OnInit(EventArgs e)
{
base.OnInit(e);
Page.ViewStateUserKey = Session.SessionID;
}
但有些人可能会碰到下面这个错误
修改当前页面的@page属性,添加enableEventValidation="false" enableViewStateMac="false"
[align=left]或者在web.config里添加<pages enableEventValidation="false" enableViewStateMac="false" />[/align]
[align=left]如果不行,则估计是在解决会话标识未更新的问题时造成的,因每次页面要生成新的SessionID,而当页面需要有回发逻辑时,造成与服务器ViewStateUserKey解析不一致(大概是这样,呵呵)[/align]
[align=left]附带会话标识未更新的解决方法:[/align]
if (!IsPostBack&&Session["user"]==null)///Session["user"]根据个人逻辑要或不要
{
Session.Abandon();
Request.Cookies.Clear();
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
}
在aspx页面的 override protected void OnInit(EventArgs e)事件里,添加一句代码:
Page.ViewStateUserKey = Session.SessionID;
override protected void OnInit(EventArgs e)
{
base.OnInit(e);
Page.ViewStateUserKey = Session.SessionID;
}
但有些人可能会碰到下面这个错误
验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
先尝试如下解决(借鉴http://www.cnblogs.com/sephil/archive/2007/10/19/asp_net_post.html)修改当前页面的@page属性,添加enableEventValidation="false" enableViewStateMac="false"
[align=left]或者在web.config里添加<pages enableEventValidation="false" enableViewStateMac="false" />[/align]
[align=left]如果不行,则估计是在解决会话标识未更新的问题时造成的,因每次页面要生成新的SessionID,而当页面需要有回发逻辑时,造成与服务器ViewStateUserKey解析不一致(大概是这样,呵呵)[/align]
[align=left]附带会话标识未更新的解决方法:[/align]
if (!IsPostBack&&Session["user"]==null)///Session["user"]根据个人逻辑要或不要
{
Session.Abandon();
Request.Cookies.Clear();
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
}
相关文章推荐
- 【原创】ASP.NET MVC3开发中遇到问题以及解决方法
- ASP.NET MVC3开发中遇到问题以及解决方法
- asp.net 2安装遇到问题的解决(由于无法创建应用程序域,因此未能执行请求。错误: 0x80070005 拒绝访问)
- 我在安装TFS 2008的时候遇到的问题以及解决方法一windows 2003 iis中总是不出现ASP.NET 2.0
- ASP.NET MVC3开发中遇到问题以及解决方法
- XP下如何解决“ASP.NET 未被授权访问所请求的资源”的问题
- Asp.net中的GridView导出遇到的两个问题和解决方法
- IIS ASP.NET网站部署问题解决: ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。
- asp.net ajax应用中遇到的两个问题及解决方法
- ASP.NET 4.0中使用FreeTextBox和FCKeditor遇到安全问题警告的解决办法
- “ASP.NET未被授权访问所请求的资源”问题的解决方法
- 为解决ASP.NET MVC(CTP)中URL“页面请求”和“单纯逻辑处理请求”混淆问题,提供一条思路
- JAVA+AXIS客户端调用Asp.net Web Service过程中遇到的问题及解决方法
- IIS ASP.NET网站部署问题解决: ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。
- ActionScript 3.0请求Asp.net时乱码问题解决
- ASP.NET“由于无法创建应用程序域,因此未能执行请求”问题一步一步解决
- 在ASP.NET环境的安装和配置遇到的一些问题的解决。
- Asp.net中解决“请求超时”的问题
- 关于在IIS中出现ASP.NET 未被授权访问所请求的资源问题的解决
- Asp.net 中的GridView导出遇到的两个问题和解决方法