Maison >développement back-end >tutoriel php >php防止恶意刷新页面的步骤
php防止恶意刷新页面的方法
<?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; $_SESSION[$allowT] = time(); }elseif(time() - $_SESSION[$allowT]>$allowTime){ $refresh = true; $_SESSION[$allowT] = time(); }else{ $refresh = false; } ?>
if(isset($_POST)) { if(变量不符合要求) <script> history.go(-1); </script> else //操作数据 ... if(操作完成) header( "location: ".$_SERVER[ 'PHP_SELF ']); } <script language= "JavaScript "> <!-- javascript:window.history.forward(1); //--> </script>
<?php$c_file="counter.txt"; //文件名赋值给变量if(!file_exists($c_file)) //如果文件不存在的操作{$myfile=fopen($c_file,"w"); //创建文件fwrite($myfile,"0"); //置入“0”fclose($myfile); //关闭文件}$t_num=file($c_file); //把文件内容读入变量if($_COOKIE["date"]!="date(Y年m月d日)") //判断COOKIE内容与当前日期是否一致{$t_num[0]++; //原始数据自增1$myfile=fopen($c_file,"w"); //写入方式打开文件fwrite($myfile,$t_num[0]); //写入新数值fclose($myfile); //关闭文件//重新将当前日期写入COOKIE并设定COOKIE的有效期为24小时setcookie("date","date(Y年m月d日)",time()+60*60*24);}?>
<?phpsession_start();?><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>通过session禁止页面刷新</title><style type="text/css"><!--.style1 {font-size: 14px;font-family: "华文仿宋";font-weight: bold;}.style2 {font-family: "华文琥珀"}--></style></head><body><?php//使用文本存储数据 if($_SESSION[temp]==""){ if(($fp=fopen("counter.txt","r"))==false){ echo "打开文件失败!"; }else{ $counter=fgets($fp,1024); //读取文件中数据 fclose($fp); //关闭文本文件 $counter++; //计数器增加1 $fp=fopen("counter.txt","w"); //以写的方式打开文本文件 fputs($fp,$counter); //将新的统计数据增加1 fclose($fp); } //关闭文//从文本文件中读取统计数据 if(($fp=fopen("counter.txt","r"))==false){ echo "打开文件失败!"; }else{ $counter=fgets($fp,1024); fclose($fp); echo "数字计数器: " .$counter ; } //输出访问次数 $_SESSION[temp]=1; //登录以后,$_SESSION[temp]的值不为空,给$_SESSION[temp]赋一个值1 }else{ echo "<script>alert('您不可以刷新本页!!'); history.back();</script>"; }?><table width="300" border="0" cellpadding="0" cellspacing="0" background="images/141.jpg"><tr> <td height="35" align="center"><span class="style1">通过session禁止页面刷新</span></td></tr><tr> <td height="40" align="center"><span class="style2"> <?php if(($fp=fopen("counter.txt","r"))==false){ echo "打开文件失败!"; }else{ $counter=fgets($fp,1024); fclose($fp); echo "网页访问量: " .$counter ; } //输出访问次数 ?> </span></td></tr><tr> <td height="25" align="center"> </td></tr></table></body></html>
参考来源:
php防止恶意刷新与刷票的方法
http://www.lai18.com/content/369326.html
《PHP安全编程系列》系列技术文章整理收藏
PHP安全编程系列收藏夹收藏了有关PHP安全编程方面的知识,对PHP安全编程提供学习参考
1PHP网站常见安全漏洞,及相应防范措施总结
2PHP开发安全问题总结
3php防止网站被刷新的方法汇总
4php防止恶意刷新与刷票的方法
5PHP安全之使用 Register Globals
6PHP安全之用户提交的数据
7PHP安全之魔术引号——什么是魔术引号以及如何使用
8PHP安全之隐藏PHP脚本扩展名
9PHP安全之文件系统安全——Null字符问题
10PHP安全之错误报告
11PHP安全之数据库安全——设计、连接和加密
12PHP安全之数据库安全——SQL注入及预防措施
13PHP安全之文件系统安全及防范措施
14PHP安全之以Apache模式安装时可能遇到的攻击及解决办法
15PHP安全之以CGI 模式安装时可能遇到的攻击及解决办法
16PHP安全之简介和总则
17php防止sql注入之过滤分页参数实例
18php防止站外远程提交表单的方法
19php防止伪造数据从地址栏URL提交的方法
20PHP防止表单重复提交的几种常用方法汇总
21php防止伪造的数据从URL提交方法
22PHP防止post重复提交数据的简单例子
23PHP安全之防止你的源代码或重要配置信息暴露在外
24php防止sql注入示例分析和几种常见攻击正则表达式
25php防止sql注入代码实例
26php防止SQL注入详解及防范
27PHP防止跨域提交表单
28php安全之狗尾续貂
29解析php防止form重复提交的方法
30什么XSS攻击?PHP防止XSS攻击函数
31php防止漏洞策略,创建高性能web
32php安全之直接用$获取值而不$_GET 字符转义
33PHP安全编程:共享主机的源码安全
34PHP安全编程:更优的会话数据安全
35PHP安全编程:会话数据注入
36PHP安全编程:主机文件目录浏览
37PHP安全编程:PHP的安全模式
38PHP安全编程:阻止文件名被操纵
39PHP安全编程:文件包含的代码注入攻击
40PHP安全编程:文件目录猜测漏洞
41PHP安全编程:打开远程文件的风险
42PHP安全编程:shell命令注入
43PHP安全编程:暴力破解攻击
44PHP安全编程:密码嗅探与重播攻击
45PHP安全编程:记住登录状态的安全做法
46PHP安全编程:session劫持的防御
47PHP安全编程:防止源代码的暴露
48PHP安全编程:留心后门URL
49PHP安全编程:session固定获取合法会话
50PHP安全编程:cookie暴露导致session被劫持
51PHP安全编程:防止SQL注入
52PHP安全编程:从URL的语义进行攻击
53PHP安全编程:文件上传攻击的防御
54PHP安全编程:跨站脚本攻击的防御
55PHP安全编程:跨站请求伪造CSRF的防御
56PHP安全编程:关于表单欺骗提交
57PHP安全编程:表单与数据安全
58PHP安全编程:不要暴露数据库访问权限
59PHP安全编程:HTTP请求欺骗
60PHP安全编程:对输出要进行转义
61PHP安全编程:过滤用户输入
62PHP安全编程:网站安全设计的一些原则
63PHP安全编程:不要让不相关的人看到报错信息
64PHP安全编程:register_globals的安全性
65PHP安全编程:可用性与数据跟踪
66php防止xss攻击的方法
67discuz的php防止sql注入函数
版权声明:本文为博主原创文章,未经博主允许不得转载。