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();

  }

}

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

}

时间: 2024-10-17 09:10:14

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

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

www.qdmm.com/BookReader/1197539,68368696.aspxwww.qdmm.com/BookReader/1197539,68368697.aspxwww.qdmm.com/BookReader/1197539,68368699.aspxwww.qdmm.com/BookReader/1197539,68368701.aspxwww.qdmm.com/BookReader/1197539,68368702.aspxwww.qdmm.com/BookReader/1

PHP 防恶意刷新实现代码

本质还是采用session方式进行时间比较,在单位时间内允许访问或者访问次数,如果有使用反向代理的话,也可以采用nginx配置 <?php session_start(); $k=$_GET['k']; $t=$_GET['t']; $allowTime = 1800;//防刷新时间 $ip = get_client_ip(); $allowT = md5($ip.$k.$t); if(!isset($_SESSION[$allowT])) { $refresh = true; $_SESSIO

ASP.NET 4.0尚未在 Web 服务器上注册 解决方法

ASP.NET 4.0尚未在 Web 服务器上注册 解决方法 使用VS2010创建web应用程序时出现如下提示ASP.NET 4.0尚未在 Web 服务器上注册.为了使网站正确运行,可能需要手动将 Web 服务器配置为使用 ASP.NET 4.0,按 F1 可了解更多详细信息 解决方法: 首先设置IIS应用程序池 net framework版本为4.0 然后  开始->所有程序->附件->鼠标右键点击“命令提示符”->以管理员身份运行->%windir%\Microsoft.

[转载]ASP.NET对路径&quot;xxxxx&quot;的访问被拒绝的解决方法小结

异常详细信息: System.UnauthorizedAccessException: 对路径“D:/temp1/MyTest.txt”的访问被拒绝 在windows 2003下,在运行web应用程序的时候出现一下错误: 服务器无法处理请求,-->对路径“C:/temp/mytest.txt”的访问拒绝 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.UnauthorizedAccess

ASP.NET对路径"xxxxx"的访问被拒绝的解决方法小结

异常详细信息: System.UnauthorizedAccessException: 对路径"D:/temp1/MyTest.txt"的访问被拒绝 在windows 2003下,在运行web应用程序的时候出现一下错误: 服务器无法处理请求,-->对路径"C:/temp/mytest.txt"的访问拒绝 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.

ASP.NET MVC 此安装不支持该项目类型解决方法

http://www.cnblogs.com/younggun/archive/2011/03/03/1969498.html ASP.NET MVC  此安装不支持该项目类型解决方法 打开 .csproject 文件  在  <ProjectTypeGuids>中的三个GUID的前两个修改为: {F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21}; 后面还有一个 GUID 是你项目的GUID

ASP.NET MVC中对Model进行分步验证的解决方法

原文:ASP.NET MVC中对Model进行分步验证的解决方法 在我之前的文章:ASP.NET MVC2.0结合WF4.0实现用户多步注册流程中将一个用户的注册分成了四步,而这四个步骤都是在完善一个Model的信息,但是又分页面填写信息的,当时我加上ModelState.IsValid这句验证代码的时候,根本没法通过验证,因为在注册的前面三步,注册用户的Model信息都没填写完整,而ModelState.IsValid是对一个实体的所有属性进行判断验证的.当时很纠结,因为刚接触Asp.net

Win7右键刷新反应特别慢的解决方法

我们使用电脑的时候,不少用户在执行各种操作之后,会使用鼠标右键点击桌面选择刷新,来刷新桌面.不过如果遇到了鼠标右键刷新桌面很慢怎么办?下面装机之家分享一下Win7右键刷新反应特别慢的解决方法,具体操作如下.鼠标右键刷新反应慢解决方法:1.在键盘上同时按下"Windows + R"组合键,调出"运行"对话框.在运行输入框中输入"regedit"命令,并点击确定,即可打开注册表编辑器,如下图所示: 2.在注册表编辑器中,依次展开注册表路径:"

asp.net url址址中中文汉字参数传递乱码解决方法

中文乱码是网站开发中会常碰到的问题,今天我们来讲一下关于url址址中中文汉字参数传递乱码解决方法,有需要的朋友可以参考下.在cs文件里传参的时候用UrlEncode: Response.Redirect("B.asp教程x?Name="+Server.UrlEncode(Name)); 接参的时候用UrlDecode: Response.Write(Server.UrlDecode(Request.QueryString["Name"])); 脚本儿里传参的时候用e