主页 > 知识库 > asp.net网站防恶意刷新的Cookies与Session解决方法

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

热门标签:百度AI接口 科大讯飞语音识别系统 国美全国运营中心 电商新玩法 电销业务 客户服务 人工智能 网站排名优化

本文实例讲述了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();
  }
}
#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();
}

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

您可能感兴趣的文章:
  • smarty模板中使用get、post、request、cookies、session变量的方法
  • php设置session值和cookies的学习示例
  • .net中的session与cookies区别及使用方法
  • Application,Session,Cookies对象应用介绍
  • Cookies 和 Session的详解及区别

标签:益阳 攀枝花 咸宁 POS机 拉萨 南平 厦门 枣庄

巨人网络通讯声明:本文标题《asp.net网站防恶意刷新的Cookies与Session解决方法》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266