<![CDATA[Latest posts for the topic "Chống DOS bằng cho php script nhờ kết hợp với memcache."]]> /hvaonline/posts/list/8.html JForum - http://www.jforum.net Chống DOS bằng cho php script nhờ kết hợp với memcache. Code:
$antiflood = 4; // anti-flooding protect time in seconds.

	$MCobj = new Memcache;
	if(!$MCobj->pconnect($MCHost, 11211))
		$MCHost = null;
	else if($debug) echo "<debug>Connected to cached</debug>";

//Anti flooding
$pattern = '/^(10\.|192\.168\.|127\.)/';
if($MCobj && !preg_match($pattern,$_SERVER['REMOTE_ADDR'])) {
        $protectedkey = 'ip'.$_SERVER['REMOTE_ADDR'].'-'.$_SERVER['SCRIPT_FILENAME'];
	$isquery = $MCobj->get($protectedkey);

	if($isquery) { // query too fast
		echo 'Server too busy, please visit later.;
		exit();
	}
	$MCobj->set($protectedkey, 1, 0, $antiflood);
}
Chúc các bạn thành công.]]>
/hvaonline/posts/list/29792.html#183665 /hvaonline/posts/list/29792.html#183665 GMT
Chống DOS bằng cho php script nhờ kết hợp với memcache. /hvaonline/posts/list/29792.html#183793 /hvaonline/posts/list/29792.html#183793 GMT Chống DOS bằng cho php script nhờ kết hợp với memcache.

myquartz wrote:
Hi! Thấy vài member thảo luận về code chống DOS. Tớ góp 1 tí cho vui. Đây là đoạn code tớ đã áp dụng 1 cho 1 site của tớ, nó có khoảng 5000 keep-alive session, 10K IP khác nhau truy cập hàng ngày, site cung cấp thông tin trực tuyến nên mỗi client request khoảng 5-7 giây 1 lần, với 18-20 triệu hit/ngày (cường độ khá kinh khủng đấy). code này áp dụng cho php. Phải kết hợp với memcache để đảm bảo tốc độ (1 ứng dụng khá là ... hay đấy). Nếu dùng mysql cũng đc, với memory table, nhưng ko hay lắm vì mysql nhiều overhead hơn nên chậm hơn. Code:
$antiflood = 4; // anti-flooding protect time in seconds.

	[b][color=yellow]$MCobj = new Memcache;[/color][/b]
	if(!$MCobj->pconnect($MCHost, 11211))
		$MCHost = null;
	else if($debug) echo "<debug>Connected to cached</debug>";

//Anti flooding
$pattern = '/^(10\.|192\.168\.|127\.)/';
if($MCobj && !preg_match($pattern,$_SERVER['REMOTE_ADDR'])) {
        $protectedkey = 'ip'.$_SERVER['REMOTE_ADDR'].'-'.$_SERVER['SCRIPT_FILENAME'];
	$isquery = $MCobj->get($protectedkey);

	if($isquery) { // query too fast
		echo 'Server too busy, please visit later.;
		exit();
	}
	$MCobj->set($protectedkey, 1, 0, $antiflood);
}
Chúc các bạn thành công. 
Mình vẫn chưa thấy Class Memcache... ? Bạn giải thick rõ hơn về đoạn code trên được ko ? Vd như Memcache được gọi ra từ đâu ?]]>
/hvaonline/posts/list/29792.html#183888 /hvaonline/posts/list/29792.html#183888 GMT
Chống DOS bằng cho php script nhờ kết hợp với memcache. /hvaonline/posts/list/29792.html#183970 /hvaonline/posts/list/29792.html#183970 GMT