时间:2021-07-01 10:21:17 帮助过:4人阅读
php如何防止被别人恶意刷新页面呢?本文为大家提供三个参考方法,有需要的朋友,可以看看。
首先,我们来分析下可选择的几种方式。 1、session记录 submit.php为发送页面,在这个页面上设置一个session变量,并作为隐藏域和表单一起发送到,submitdeal.php页面.在服务器把post来的隐藏变量和服务器端记录的session变量进行对比,比如一样,则写入数据库并清除session,这样用户刷新页面,两值不等时则提示错误或跳转到指定的页面。 优点:不用用户输入验证码 缺点:表单容易被复制 2.验证码 原理同上,只是session数据不作为隐藏域提交,而是让用户填写,大多数网站都彩用,有文字验证码和图片验证码,图片验证码安全性高一些。 3.IP绑定 提交数据后,先从IP表里检索客户端IP,如果有,并且没有过期,那么报错,否则写入数据库,然后再取客房端IP,把IP写入数据库。 4.cookie 客户提交后处理程序先检索客户端有没有设置cookie,如果有,则不重复提交,如果没有,则写数据,,再写个cookie; 以下的三个示例代码,均采用第一种session控制的方法,因为不确定用户会不会禁用cookie。 方法1: $allowTime){ $refresh = true; $_SESSION[$allowT] = time(); }else{ $refresh = false; } //by bbs.it-home.org ?> 方法2: 方法3: session_start(); if(!emptyempty($_POST[name])){ $data = $_POST[name]; $tag = $_POST[tag]; if($_SESSION[status]==$tag){ echo $data; }else{ echo "请不要刷新!"; } } $v = mt_rand(1,10000); ?> echo $v; $_SESSION[status] = $v; ?> |