asp.net防止Cookies与Session恶意刷新的解决方法
来源:绵阳动力网络公司  时间:2014-09-23  阅读:33

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

Session版实现方法:

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();   
} 
} 
#endregion   
public 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(); } #endregion   
public 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(); 
}


 
  • 电话咨询

  • 0816-2318288