首页 > 编程 > .NET > 正文

asp.net网站防恶意刷新的Cookies与Session解决方法

2020-01-17 23:22:57
字体:
来源:转载
供稿:网友

本文实例讲述了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程序设计有一定的借鉴价值。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表