PDA

View Full Version : Hạn chế dos



bosap
28-02-2010, 08:59
bosap đang làm 1 forum nho nhỏ mà chẳng hiểu sao cứ bị dos hoài, die hoài. Mong mọi người giúp đỡ làm sao để hạn chế bớt mấy tên vô công rồi nghề, ngồi dos hoài thế này hay ít ra là hạn chế bớt hậu quả của nó cũng được. Cám ơn nhiều !

MMKC_IT
28-02-2010, 09:30
Đặt pass thử xem :).........

duykhuong-it
28-02-2010, 09:37
hên mới là 4rum nhỏ thôi đó

bosap
28-02-2010, 09:44
Đặt pass thử xem :).........
bạn nói cụ thể hơn chút nữa đi bạn

hên mới là 4rum nhỏ thôi đó
bây giờ nhỏ, rồi từ từ nó lớn thôi chứ bạn :-p

Spammer
28-02-2010, 21:57
bạn nói cụ thể hơn chút nữa đi bạn

bây giờ nhỏ, rồi từ từ nó lớn thôi chứ bạn :-p

Đặt pass có nghĩa là khi người ta vào trang web của bạn thì nó đòi user và pass dạng như tường lửa hay kiểu kiểu thế, cái này tìm 1 vòng trên mạng chắc có hướng dẫn chi tiết thôi mà!

Cũng may là forum nhỏ nên nó DDOS thì cũng còn đỡ chứ forum mà lớn nếu sever yếu hay sài hosting thì có khi.. :D

quanhi26
05-03-2010, 15:32
thử cài tường lửa của zonealarm xem

vthy08
10-03-2010, 22:21
Firewall kiểu: check referer
Cần chỉnh sữa lại các phần trong code lại cho phù hợp với server của bạn sau đó copy code dưới rồi save lại với tên firewall.php và thêm đoạn include("firewall.php"); sau các file .php bạn muốn bảo vệ. chúc vui.
<?php

//------ Phần thông tin cần chỉnh sửa ---------------

$level = 1; //Mức độ bảo vệ: 1: bảo vệ bình thường; 2: bảo vệ cao

// Nếu bạn chọn $level = 2 thì hãy điền tên miền của bạn ở phần sau:
$yoursite = "localhost"; //Nhập tên miền của website bạn - KHÔNG cần http://www.


/* Ok, giờ bạn có hai chọn lựa:
- Điều chỉnh bật/tắt chống ddos trực tiếp trên file này (1)
- Điều chỉnh bật/tắt chống ddos ở một file trên một host khác (2)
*/

$scheme = 1; //Điền một trong hai số: 1: Chọn cách điều chỉnh thứ (1) 2: Chọn cách điều chỉnh thứ (2)

// Nếu bạn lựa chọn giải pháp (1) thì hãy edit phần này:
$antidos = 1; //Nhập 1 để bật, 0 để tắt chống ddos

// Nếu bạn lựa chọn giải pháp (2) thì hãy edit phần này:
$determiner = "http://another.com/determiner.txt"; //Link tới file quy định bật/tắt chống ddos - Nếu bạn muốn bật chống ddos chỉ việc nhập vào nội dung file này số "1"


//Có thể chỉnh sửa phần sau hoặc để nguyên vậy cũng được
$redirect = "<center><br><br><br><br><center><a href='".$_SERVER['REQUEST_URI']."'>[ Click Vào đây ]</a> <br>Để tới trang bạn cần xem</center>";

// -------------- Hết phần thông tin cần chỉnh sửa - Không chỉnh sửa phần dưới!!! ------------


//##########################################
// ### Okie, chúng ta vào việc nào (-_-) ###
//##########################################

//Ok, định nghĩa mí cái function đã

function url_exists($url) {
$a_url = parse_url($url);
if (!isset($a_url['port'])) $a_url['port'] = 80;
$errno = 0;
$errstr = '';
$timeout = 30;
if(isset($a_url['host']) && $a_url['host']!=gethostbyname($a_url['host'])){
$fid = fsockopen($a_url['host'], $a_url['port'], $errno, $errstr, $timeout);
if (!$fid) return false;
$page = isset($a_url['path']) ?$a_url['path']:'';
$page .= isset($a_url['query'])?'?'.$a_url['query']:'';
fputs($fid, 'HEAD '.$page.' HTTP/1.0'."\r\n".'Host: '.$a_url['host']."\r\n\r\n");
$head = fread($fid, 4096);
fclose($fid);
return preg_match('#^HTTP/.*\s+[200|302]+\s#i', $head);
} else {
return false;
}
}


function on_off($file) {
$string = file_get_contents($file);
$fetch = strstr($string,"1");

if ($fetch) {
return true;
}

else {
return false;
}
}

function level_1() {
global $antidos, $redirect;
if($antidos){
if(!$_SERVER['HTTP_REFERER']) {
echo $redirect;
exit;
}
}
}

function level_2() {
global $antidos, $redirect, $yoursite;
if($antidos){
if(strpos($_SERVER['HTTP_REFERER'], 'http://www.'.$yoursite) !== 0) {
if(strpos($_SERVER['HTTP_REFERER'], 'http://'.$yoursite) !== 0) {
echo $redirect;
exit;
}
}
}
}

// Done function definition ^_^


if($scheme == 1) {
if($level == 1) level_1();
elseif($level == 2) level_2();
else { echo "Bạn phải chọn \$level = 1 hoặc \$level = 2"; exit; }
}

elseif($scheme == 2) {
if (!url_exists($determiner)) $antidos = 1;
else { $antidos = on_off($determiner); }

if($level == 1) level_1();
elseif($level == 2) level_2();
else { echo "Bạn phải chọn \$level = 1 hoặc \$level = 2"; exit; }
}

else {
echo "Bạn phải chọn \$scheme = 1 hoặc \$scheme = 2";
exit;
}

?>
Cái này mình thấy dùng cũng được
bạn dùng thử xem sao

bosap
11-03-2010, 08:59
cảm ơn bạn nhiều, không tìm thấy nút Thanks chứ thấy là Thanks liền :D

xuanhung79
19-06-2010, 08:42
hay tuyệt. thank bạn nhiều

lefuong
28-08-2010, 18:24
để test xem thế nào, thank bạn nhé