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

 更新时间:2014年09月19日 10:43:54   投稿:shichen2014  
这篇文章主要介绍了asp.net网站防恶意刷新的Cookies与Session解决方法,分别以实例的形式讲述了采用cookie法与session法实现WEB页面防止恶意刷新的技巧,需要的朋友可以参考下

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

相关文章

  • ASP.NET实现根据URL生成网页缩略图的方法

    ASP.NET实现根据URL生成网页缩略图的方法

    这篇文章主要介绍了ASP.NET实现根据URL生成网页缩略图的方法,结合实例较为详细的分析了asp.net生成网页缩略图的详细实现技巧与相关注意事项,需要的朋友可以参考下
    2015-11-11
  • 一篇文章教你如何排查.NET内存泄漏

    一篇文章教你如何排查.NET内存泄漏

    这篇文章主要给大家介绍了如何通过一篇文章教你排查 .NET 内存泄漏的相关资料,.NET内存泄漏,更准确的说应该是对象超过生命周期而不能被GC回收,本文通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-09-09
  • MAUI中实现构建跨平台原生控件

    MAUI中实现构建跨平台原生控件

    这篇文章介绍了MAUI中实现构建跨平台原生控件的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-02-02
  • asp.net 页面回跳实现代码

    asp.net 页面回跳实现代码

    今天做登录时,遇到点小问题,在网上找了一下,没看到源码案例,不过还是花了一点时间调试通过了在此记录一下,备忘。
    2010-03-03
  • 详解JQuery Ajax 在asp.net中使用总结

    详解JQuery Ajax 在asp.net中使用总结

    这篇文章主要介绍了详解JQuery Ajax 在asp.net中使用总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • ASP.NET笔记之 控件与母板的区别分析

    ASP.NET笔记之 控件与母板的区别分析

    本篇文章小编为大家介绍,ASP.NET笔记之 控件与母板的区别分析。需要的朋友参考下
    2013-04-04
  • .NET6接入Skywalking链路追踪详细过程

    .NET6接入Skywalking链路追踪详细过程

    Skywalking是一款分布式链路追踪组件,随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务,这篇文章主要介绍了.NET6接入Skywalking链路追踪完整流程,需要的朋友可以参考下
    2022-06-06
  • 使用ASP.Net WebAPI构建REST服务

    使用ASP.Net WebAPI构建REST服务

    这篇文章介绍了使用ASP.Net WebAPI构建REST服务的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 浅谈从ASP.NET Core2.2到3.0你可能会遇到这些问题

    浅谈从ASP.NET Core2.2到3.0你可能会遇到这些问题

    这篇文章主要介绍了ASP.NET Core2.2到3.0可能会遇到的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • ASP.NET Core MVC压缩样式、脚本详解

    ASP.NET Core MVC压缩样式、脚本详解

    这篇文章主要介绍了ASP.NET Core MVC压缩样式、脚本详解的相关资料,需要的朋友可以参考下
    2017-02-02

最新评论