php不断的切换前端链接方法 防止攻击 swoole写法 每分钟生成一次url后缀 返回到客户端让他们更新$ws->on('message', function ($ws, $frame) { var_dump($frame); $data = json_decode($frame->data, 'true'); $tag = intval($data['tag']); /*初始化玩家信息和pc信息*/ if ($tag == 1) { /*用户第一次加载初始化*/ $data = array('fid' => $frame->fd); $isOk = commoninsertinfo($data, fid'); if ($isOk) { $sql = 'select houzhui from urlhouzhui where id=1 limit 1'; $houzhui = commongetinfo($sql)[0]['houzhui']; $ws->push($frame->fd, json_encode(array('success' => 1, 'msg' => '初始化成功', 'data' => array('tag' => $tag, 'list' => array('houzhui' => $houzhui))))); } else { $ws->push($frame->fd, json_encode(array('success' => 0, 'msg' => '请重新刷新页面', 'data' => array('tag' => $tag)))); } } });//定时器要写在WorkerStart这个里面哦 $ws->on('WorkerStart', function ($serv, $worker_id) { /*1分钟更新一次url 防止ddos攻击*/ swoole_timer_tick(60000, function ($timer_id) use ($serv) { $houzhui = getRandom(8, 1); commonupdateinfo(array('houzhui' => $houzhui), 'id', 1, 'urlhouzhui'); $sql = 'select fid from fid'; $fidlist = commongetinfo($sql); if (!empty($fidlist)) { foreach ($fidlist as $k => $v) { $serv->push($v['fid'], json_encode(array('success' => 1, 'msg' => '生成成功', 'data' => array('tag' => 1, 'list' => array('houzhui' => $houzhui))))); } } }); });php这里也要更新 请求的接口地址也要读取数据库更新过来/*读取url后缀*/ $sql = 'select houzhui from urlhouzhui where id=1 limit 1'; $houzhui = $this->commongetinfo($sql)[0]['houzhui']; if (ACTION_NAME != "index" && ACTION_NAME != "huodongguize") { $pos = strpos(ACTION_NAME, strval($houzhui)); if (!is_numeric($pos)) { if(isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && strtolower($_SERVER["HTTP_X_REQUESTED_WITH"])=="xmlhttprequest"){ echo json_encode(array('success' => 0, 'msg' => '停留时间过长,你需要返回上个页面,并且进行刷新后进行操作')); exit(); }else{ header("Content-type:text/html;charset=utf-8"); echo ""; exit; }; }else{ $url=rtrim(ACTION_NAME,$houzhui); $this->$url(); exit(); } }
查看原文:http://newmiracle.cn/?p=2049
swoole不断的切换前端链接方法 防止攻击
最新推荐文章于 2022-01-05 11:21:07 发布