Heim > Backend-Entwicklung > PHP-Tutorial > PHP限制频繁请求

PHP限制频繁请求

WBOY
Freigeben: 2016-07-29 09:00:55
Original
3273 Leute haben es durchsucht
<?php header("Content-Type:text/html; charset=utf-8");
 

include_once("libs/RSA.class.php");
/**
 * 在线高频频繁提交解决方案
 * @author 周阳<305846826@qq.com>
 * @link http://www.jieone.com/
 */
class Token extends RSA{
	/**
	 * 客户端唯一ID
	 */
	private $date=0;
	
	private $clientID="abccccc";
	/**
	 * 系统access_token,即要保存于客户端的数据
	 */
	private function sys_access_token(){
		$array=array(
				'clientID'=>$this->clientID,
				'date'=>$this->date
				);
		$sys_access_token = json_encode($array);
		//RSA公钥加密
		return $this->public_encrypt($sys_access_token);
	}
	/**
	 * 保存access_token
	 */
	public function get_access_token(){
		
		 if(empty($_COOKIE['access_token'])){
			 $this->date=time()-100;
			return $this->sys_access_token(); 
		 }
		 return $_COOKIE['access_token'];
	}
	/**
	 * 保存access_token
	 */
	private function save_access_token(){
		
		setcookie("access_token",$this->sys_access_token());	
	}
	
	public function check(){
		
		$access_token=$this->get_access_token();
		
		//RSA私钥解密
		$access_token = $this->private_decrypt($access_token);
		
		//信息已被非法篡改
		if(empty($access_token)){
			return false;
		}
		
		$object=json_decode($access_token);

		//2秒只能ajax请求一次,可修改
		if ($object->date + 2 > time()){
			return false;
		}
		//保存access_token
		$this->date=time();
		$this->save_access_token();
		return true;	
	}
		
}

echo '<br><br><br><br><br><br><center><h1>频繁刷新试试</h1></center><br>';

$Token=new Token();
if(!$Token->check()){
	echo '<center><h2 style=" color:red">您请求过快,请稍后再试</h2></center><br><br><br>';
	exit();
}
echo '<center><h2 style=" color:green">访问正常</h2></center><br><br><br>';

echo "您当前access_token:".$Token->get_access_token();
Nach dem Login kopieren

PHP限制频繁请求

以上就介绍了PHP限制频繁请求,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage