Welcome 微信登录

首页 / 网页编程 / ASP.NET / asp.net网站防恶意刷新的Cookies与Session解决方法

本文实例讲述了asp.net网站防恶意刷新的Cookies与Session解决方法,是WEB程序设计中非常实用的技巧。分享给大家供大家参考。具体实现方法如下:

Session版实现方法:

public double time;public const int freetime = 1;//防刷冰冻时间间隔,当前为1秒#region 防恶意刷新if (Session.SessionID == null){Response.End();}else if (Session["sionid"] == null){Session["sionid"] = Session.SessionID;}if (Session["last"] == null){Session["last"] = DateTime.Now;}else{DateTime thisTime = DateTime.Now;DateTime lastTime = DateTime.Parse(Session["last"].ToString());if (Session.SessionID == Session["sionid"].ToString()) Session["last"] = thisTime;TimeSpan ts = thisTime - lastTime;time = ts.TotalMilliseconds;if (time < freetime * 500){ warm_prompt();}}#endregionpublic void warm_prompt(){Response.Write("<table width="778" border="0" align="center" cellpadding="3" cellspacing="2" bgcolor="#009900" style="font-size: 14px; ">");Response.Write(" <tr bgcolor="#FFFFFF">");Response.Write("<td><img src="/newimages/logos.gif"></td>");Response.Write("<td bgcolor="#EEFFEE"为了保证您的访问安全,请您 " + freetime + " 秒后<a href="" + Request.RawUrl + "" target="_self" style="color:#FF0000;">点击这里刷新</a>此页面</td>");Response.Write(" </tr>");Response.Write("</table>");Response.End();}

Cookies版实现方法:

public double time;public const int freetime = 2;#region 防恶意刷新string page;if (Request.Cookies["page"] == null){page = "";}else{page = HttpContext.Current.Request.Cookies["page"].Value.ToString(); //获取cookie中存储的url值 }string strThisPage = HttpContext.Current.Request.Url.PathAndQuery.ToString();//获取当前页地址 DateTime LastTime = DateTime.Now;if (page.Equals(strThisPage))//如果cookie中的值和当前页相等,那么表示是刷新操作 {TimeSpan ts = LastTime - DateTime.Parse(HttpContext.Current.Request.Cookies["time"].Value.ToString());time = ts.Seconds;if (time < freetime){ warm_prompt();}}else{//执行操作 Response.Cookies["page"].Value = strThisPage;Response.Cookies["time"].Value = LastTime.ToString();}#endregionpublic void warm_prompt(){Response.Write("<table width="778" border="0" align="center" cellpadding="3" cellspacing="2" bgcolor="#009900" style="font-size: 14px; ">");Response.Write(" <tr bgcolor="#FFFFFF">");Response.Write("<td><img src="/newimages/logos.gif"></td>");Response.Write("<td bgcolor="#EEFFEE"为了保证您的访问安全,页面将在2秒后将自动跳转到您要访问的内容!</td>");Response.Write(" </tr>");Response.Write("</table>");Response.Write("<meta http-equiv="refresh" content="2";URL=" + HttpContext.Current.Request.Cookies["page"].Value.ToString() + ">");Response.End();}

相信本文所述对大家的asp.net程序设计有一定的借鉴价值。