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();
}
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网站防恶意刷新的Cookies与Session解决方法的更多相关文章
- ASP.NET MVC中对Model进行分步验证的解决方法
原文:ASP.NET MVC中对Model进行分步验证的解决方法 在我之前的文章:ASP.NET MVC2.0结合WF4.0实现用户多步注册流程中将一个用户的注册分成了四步,而这四个步骤都是在完善一个 ...
- ASP.NET MVC 此安装不支持该项目类型解决方法
http://www.cnblogs.com/younggun/archive/2011/03/03/1969498.html ASP.NET MVC 此安装不支持该项目类型解决方法 打开 .csp ...
- ASP.NET 4.0尚未在 Web 服务器上注册 解决方法
使用VS2010创建web应用程序时出现如下提示ASP.NET 4.0尚未在 Web 服务器上注册.为了使网站正确运行,可能需要手动将 Web 服务器配置为使用 ASP.NET 4.0,按 F1 可了 ...
- IIS发布网站:CS0016: 未能写入输出文件的解决方法
“/”应用程序中的服务器错误.-------------------------------------------------------------------------------- 编译错误 ...
- asp.net url址址中中文汉字参数传递乱码解决方法
中文乱码是网站开发中会常碰到的问题,今天我们来讲一下关于url址址中中文汉字参数传递乱码解决方法,有需要的朋友可以参考下.在cs文件里传参的时候用UrlEncode: Response.Redirec ...
- 2、vuex页面刷新数据不保留,解决方法(转)
今天这个问题又跟页面的刷新有一定的关系,虽然说跟页面刷新的关系不大,但确实页面刷新引起的这一个问题. 场景: VueX里存储了 this.$store.state.PV这样一个变量,这个变量是在app ...
- HBuilder/Mui开发ios使用上拉刷新导致滚动条无法使用的解决方法
HBuilder/Mui开发的APP使用上拉刷新,当滚动到底部是会触发上拉刷新,加载更多数据.但是ios上确是一个坑,导致滚动条无法滚动. 解决方法 放弃Mui的上拉刷新,自己使用JS实现. var ...
- ASP.NET Menu控件点击区域太小解决方法
ASP.NET自带的Menu控件点击区域比较小,基本就是文本范围和图片范围,在区域外虽然选择的项有颜色变化,但是这个时候点击是没有用的,体验不是很好 检查前台生成的HTML,是用td嵌套a标签,a标签 ...
- PHP 防恶意刷新实现代码
本质还是采用session方式进行时间比较,在单位时间内允许访问或者访问次数,如果有使用反向代理的话,也可以采用nginx配置 <?phpsession_start(); $k=$_GET[' ...
随机推荐
- 算法笔记_097:蓝桥杯练习 算法提高 P1001(Java)
目录 1 问题描述 2 解决方案 1 问题描述 当两个比较大的整数相乘时,可能会出现数据溢出的情形.为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法.具体来说,首先以字符串的形式输入两个整 ...
- 运行maven pom.xml文件后编译环境变为jdk1.5
idea中运行pom.xml文件后,将编译环境变成了1.5,造成一系列的编译问题很是不方便. 以下是解决方法: 在"pom.xml"里加入如下代码: <properties& ...
- 滚动锁定 scroll lock 键有什么用?
滚动锁定 scroll lock 键有什么用? 中文名称:滚动锁定键 按下此键后在Excel等按上.下键滚动时,会锁定光标而滚动页面:如果放开此键,则按上.下键时会滚动光标而不滚动页面. ...
- fastdfs安装
1:安装libevent rpm -aq |grep libevent|xargs rpm -e --nodeps tar zxvf libevent-2.0.21-stable.ta ...
- struts过滤器的原理
struts就是充当拦截器(过滤器)的作用.在web.xml配置过滤器, package cn.itcast.framework.core; import java.io.IOException; i ...
- 【转帖】Servlet 3.0 新特性详解
http://www.ibm.com/developerworks/cn/java/j-lo-servlet30/ Servlet 3.0 新特性概述 Servlet 3.0 作为 Java EE 6 ...
- JBoss目录结构说明
http://www.blogjava.net/livery/articles/262544.html $JBOSS-HOME/bin: 放置各种脚本文件以及相关文件,包括jb ...
- Mac Xcode下配置OpenGL
暂时搁置一下iOS,又要去弄一些杂七杂八的东西了,毕竟是学校的作业,还是要完成的. 作业是让我们用OpenGL做一个茶壶- -.而且要三维立体能旋转的那种. 好吧这些都不是重点,重点是我最终决定在Ma ...
- Oracle 性能调优案例(代码级别)
业务案例一: 业务:千万记录表中查询出50条符合条件的记录. 现象:oracle部署时跨机器,业务取得数据耗时10ms.造成业务性能不达标. 为了突出主题,对于异常分支,均已省略. 对于通常写法, o ...
- 兼容placeholder
众所周知.IE9以下不兼容placeholder属性,因此自己定义了一个jQuery插件placeHolder.js.以下为placeHolder.js的代码: /** * 该控件兼容IE9下面,专门 ...