查看: 8949|回复: 0

PHP防CC攻击的方法(防止快速刷新)

[复制链接]
  • TA的每日心情
    奋斗
    2019-5-22 23:11
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    发表于 2012-12-22 16:09:19 | 显示全部楼层 |阅读模式
    1.session记录
      submit.php为发送页面,在这个页面上设置一个session变量,,并作为隐藏域和表单一起发送到,submitdeal.php页面.在服 务器端把post上来的隐藏变量和服务器端记录的session变量进行对比,比如一样,则写入数据库并清除session,这样用户刷新页面,两个值 不相等提示错误或跳转

      优点:不用用户输入验证码

      缺点:表单容易被复制


      2.验证码
      原理和第一种一样,只是session数据不作为隐藏域提交,,而是让用户填写,大多数网站都彩用,,有文字验证码和图片验证码,图片验证码安全性高..别


      3.IP绑定
      提交数据后,先从IP表里检索客户端IP,如果有,并且没有过期,那么报错,否则写入数据库,然后再取客房端IP,把IP写入数据库。


      4.cookie
      客户提交后处理程序先检索客户端有没有设置cookie,如果有,则不重复提交,如果没有,则写数据,,再写个cookie;

      例:

      方式一:

      <?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;
      }
      ?>



      方式二:

      <?php
      session_start();
      $allow_sep = "30000";
      if (isset($_SESSION["post_sep"]))
      {
      if (time() - $_SESSION["post_sep"] < $allow_sep)
      {
      exit("请不要反复刷新");
      }
      else
      {
      $_SESSION["post_sep"] = time();
      }
      }
      else
      {
      $_SESSION["post_sep"] = time();
      }
      ?>

      方式三:

      <?
      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);
      ?>
      <form method="post" name="magic" action="f5.php"><input type="hidden"
    name="tag" value="<?=$v?>"><input type=text name="name"><input type="submit" value="submit">
      </form>
      <?
      echo $v;
      $_SESSION[status] = $v;
      ?>
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-5-14 23:50 , Processed in 0.029507 second(s), 16 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部