Giải Trí & Công Nghệ

Share Script chặn DDOS bản VTlai 2.0 chuẩn Mr.Vui

S

s0ft4u

Thành viên VIP
Member
Show cái ảnh thực tế check thừ Google Webmaster. Theo Mình check thì Google vào thì phải index được nội dung, nếu khách ngoài truy cập vào thì phái qua firewall. Mọi thứ rất ngon lành.

Ok. Nguyên lý là chặn mọi truy cập trừ Con bot của Google, mấy con bot kia nói thật là chỉ lấy dữ liệu từ Google mà thôi, đơn cử như coccoc, msn... Vì thế để một mình anh Google vào là ok rồi.
Tất cả các truy cập còn lại đều phải qua firewall. Cơ chế nhận diện trình duyệt được tối ưu, nhằm lọc ra các tool DDOS nghiệp dự...

Đầu tiên tạo file anti-ddos.php
với nội dung sau:
PHP:
<?
$napip = $_SERVER['HTTP_X_FORWARDED_FOR'];
$napip = substr($napip, 0, strpos($napip, ','));
$html = file_get_contents('http://www.checkip.com/ip/'.$napip);
preg_match ('#<td class="green">crawl-(.+?).googlebot.com</td>#s',$html,$ip);
preg_match ('#<td class="green">msnbot-(.+?).search.msn.com</td>#s',$html,$ip2);
preg_match ('#<td class="green">(.+?)-spb.dhcp.yndx.net</td>#s',$html,$xuatip3);
preg_match ('#<td class="green">static.(.+?).vn</td>#s',$html,$xuatip4);
$xuatip = preg_replace("/-/",".",$ip[1]);
$xuatip2 = preg_replace("/-/",".",$ip2[1]);
if ($napip == $xuatip || $napip == $xuatip2 || $napip == $xuatip3[1] || 'vdc' == $xuatip4[1])
{
?>
<?
}
else
{
if (strpos($_SERVER['HTTP_USER_AGENT'], 'google.com') !== false) {
?>
Phát hiện giả mạo userAgent: Googlebot<br />
<!-- IP s? b? s? b? ch?n trong ít phút n?a. <br /> -->
Nếu có nhầm lẫn, vui lòng liên hệ [email protected] để được gỡ bỏ.<hr>
IP: <? echo $napip; ?><br />
User Agent: <? echo $_SERVER['HTTP_USER_AGENT']; ?>
<?
exit();
}
elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'msnbot') !== false) {
?>
Phát hiện giả mạo userAgent: Bing MSN<br />
<!-- IP s? b? s? b? ch?n trong ít phút n?a. <br /> -->
Nếu có nhầm lẫn, vui lòng liên hệ [email protected] để được gỡ bỏ.<hr>
IP: <? echo $napip; ?><br />
User Agent: <? echo $_SERVER['HTTP_USER_AGENT']; ?>
<?
exit();
}
elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'yandex.com') !== false) {
?>
Phát hiện giả mạo userAgent: Yandex<br />
<!-- IP s? b? s? b? ch?n trong ít phút n?a. <br /> -->
Nếu có nhầm lẫn, vui lòng liên hệ [email protected] để được gỡ bỏ.<hr>
IP: <? echo $napip; ?><br />
User Agent: <? echo $_SERVER['HTTP_USER_AGENT']; ?>
<?
exit();
}
elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'coccoc') !== false) {
?>
Phát hiện giả mạo userAgent: Coccoc<br />
<!-- IP s? b? s? b? ch?n trong ít phút n?a. <br /> -->
Nếu có nhầm lẫn, vui lòng liên hệ [email protected] để được gỡ bỏ.<hr>
IP: <? echo $napip; ?><br />
User Agent: <? echo $_SERVER['HTTP_USER_AGENT']; ?>
<?
exit();
}
else
{
$antiddos = ROOTPATH . 'check.php';
if (file_exists($antiddos))
require_once($antiddos);
}
}?>

Sau đó đưa file đó vào file cần bảo vệ anti DDOS.
bằng cách thêm code này:
PHP:
$antiddos = ROOTPATH . 'anti-ddos.php';
if (file_exists($antiddos))
require_once($antiddos);

Tạo tiep file check.php
nội dung như sau:

PHP:
<?
session_start();
if (!isset($_SESSION["checked"]))
{
if (isset($_POST['vtlai_firewall_redirect'])) {
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
return;
}
else {
$_SESSION["checked"] = "User Agent OK";
}}
else
{
function baoloi($msg,$time)
{ echo "<div id='wrapper'><br /><br />
<meta http-equiv=\"Refresh\" Content=\"$time; url=\"> <div class='borderwrap'> <p style='font-size:15pt; color:#FF3300;' id='tieude'><b>Cảnh bĂ¡o:</b></p><br /><br /> <div class='warnbox' id='canhbao'> <b>PhĂ¡t hiện dấu hiệu Flood:<br>$msg";
if ($time!=-1) echo " Bạn vui lĂ²ng đợi <span id='time'>$time s</span> nữa.";
echo " </div><br /> </div> ";
if ($time!=-1) echo "<script>
var milisec=0
var seconds=$time
document.getElementById('time').innerHTML = '$time'
function display(){
if (milisec<=0){ milisec=9 ; seconds-=1 ;
} else milisec-=1;
if (seconds<=-1){ milisec=0; seconds+=1;
} document.getElementById('time').innerHTML = seconds+'.'+milisec + 's'; if (seconds==0 && milisec==0) { window.localtion.href=''; } setTimeout(\"display()\",100) ;
}
display();
</script> ";
echo " </div>"; exit();
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Xác nhận truy cập - vt.lai Firewall 2.0</title>
<meta name="HandheldFriendly" content="true" />
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0" />
<style type="text/css">
<!-- html{ overflow-x:auto; } body{ background: #FFF url('/antidoss/bg.jpg') no-repeat fixed center bottom; font-family:Arial, Verdana, Tahoma, Times New Roman, Courier; font-size:11px; line-height:135%; margin:0; padding:0; text-align:center; } a:link, a:visited, a:active{ background:transparent; color:#0066CC; text-decoration:none; } a:hover{ background:transparent; color:#000000; text-decoration:underline; } #wrapper{ margin:5px auto 20px auto; text-align:left; width:80%; } .borderwrap{ background:#FFF; border:1px solid #EEE; padding:3px; margin:0; } .borderwrap p{ background:#F9F9F9; border:1px solid #CCC; margin:5px; padding:10px; text-align:left; } .warnbox{ border:1px solid #F00; background:#FFE0E0; padding:6px; margin-right:1%; margin-left:1%; text-align:left; }
.container{ margin:0 auto; display: block; width:500px; max-width: 100%; box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; height:auto; text-align:center;
}
.knight{ background:url("http://www.wapnhatrang.com/knight.png") no-repeat; width:128px; height:128px; margin:0px auto;
}
.text1{ color:#8f2828; display:inline-block; font-size:20px; font-weight:bold; padding:5px; font-family: "Segoe UI","Segoe","Segoe WP","Tahoma","Verdana","Arial","sans-serif";
}
.dvbtn{ text-align:center; margin:10px;
}
.btn { border: none; background: #34495e; color: white; font-size: 16.5px; text-decoration: none; text-shadow: none; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; -webkit-transition: 0.25s; -moz-transition: 0.25s; -o-transition: 0.25s; transition: 0.25s; -webkit-backface-visibility: hidden;
}
.btn.btn-red { background-color: #e74c3c; padding: 11px 19px; font-size: 17.5px; -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; cursor:pointer; font-family: "Segoe UI","Segoe","Segoe WP","Tahoma","Verdana","Arial","sans-serif";
}
.btn.btn-red:hover, .btn.btn-red:focus { background-color: #ec7063;
}
.btn.btn-gray { background-color: #95a5a6; padding: 11px 19px; font-size: 17.5px; -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; cursor:pointer; font-family: "Segoe UI","Segoe","Segoe WP","Tahoma","Verdana","Arial","sans-serif";
}
#fadingBarsG{
position:relative;
width:240px;
height:29px;
margin:0 auto;
}
.fadingBarsG{
position:absolute;
top:0;
background-color:#bac4c5;
width:29px;
height:29px;
-moz-animation-name:bounce_fadingBarsG;
-moz-animation-duration:1.3s;
-moz-animation-iteration-count:infinite;
-moz-animation-direction:linear;
-moz-transform:scale(.3);
-webkit-animation-name:bounce_fadingBarsG;
-webkit-animation-duration:1.3s;
-webkit-animation-iteration-count:infinite;
-webkit-animation-direction:linear;
-webkit-transform:scale(.3);
-ms-animation-name:bounce_fadingBarsG;
-ms-animation-duration:1.3s;
-ms-animation-iteration-count:infinite;
-ms-animation-direction:linear;
-ms-transform:scale(.3);
-o-animation-name:bounce_fadingBarsG;
-o-animation-duration:1.3s;
-o-animation-iteration-count:infinite;
-o-animation-direction:linear;
-o-transform:scale(.3);
animation-name:bounce_fadingBarsG;
animation-duration:1.3s;
animation-iteration-count:infinite;
animation-direction:linear;
transform:scale(.3);
}
#fadingBarsG_1{
left:0;
-moz-animation-delay:0.52s;
-webkit-animation-delay:0.52s;
-ms-animation-delay:0.52s;
-o-animation-delay:0.52s;
animation-delay:0.52s;
}
#fadingBarsG_2{
left:30px;
-moz-animation-delay:0.65s;
-webkit-animation-delay:0.65s;
-ms-animation-delay:0.65s;
-o-animation-delay:0.65s;
animation-delay:0.65s;
}
#fadingBarsG_3{
left:60px;
-moz-animation-delay:0.78s;
-webkit-animation-delay:0.78s;
-ms-animation-delay:0.78s;
-o-animation-delay:0.78s;
animation-delay:0.78s;
}
#fadingBarsG_4{
left:90px;
-moz-animation-delay:0.91s;
-webkit-animation-delay:0.91s;
-ms-animation-delay:0.91s;
-o-animation-delay:0.91s;
animation-delay:0.91s;
}
#fadingBarsG_5{
left:120px;
-moz-animation-delay:1.04s;
-webkit-animation-delay:1.04s;
-ms-animation-delay:1.04s;
-o-animation-delay:1.04s;
animation-delay:1.04s;
}
#fadingBarsG_6{
left:150px;
-moz-animation-delay:1.17s;
-webkit-animation-delay:1.17s;
-ms-animation-delay:1.17s;
-o-animation-delay:1.17s;
animation-delay:1.17s;
}
#fadingBarsG_7{
left:180px;
-moz-animation-delay:1.3s;
-webkit-animation-delay:1.3s;
-ms-animation-delay:1.3s;
-o-animation-delay:1.3s;
animation-delay:1.3s;
}
#fadingBarsG_8{
left:210px;
-moz-animation-delay:1.43s;
-webkit-animation-delay:1.43s;
-ms-animation-delay:1.43s;
-o-animation-delay:1.43s;
animation-delay:1.43s;
}
@-moz-keyframes bounce_fadingBarsG{
0%{
-moz-transform:scale(1);
background-color:#bac4c5;
}
100%{
-moz-transform:scale(.3);
background-color:#FFFFFF;
}
}
@-webkit-keyframes bounce_fadingBarsG{
0%{
-webkit-transform:scale(1);
background-color:#bac4c5;
}
100%{
-webkit-transform:scale(.3);
background-color:#FFFFFF;
}
}
@-ms-keyframes bounce_fadingBarsG{
0%{
-ms-transform:scale(1);
background-color:#bac4c5;
}
100%{
-ms-transform:scale(.3);
background-color:#FFFFFF;
}
}
@-o-keyframes bounce_fadingBarsG{
0%{
-o-transform:scale(1);
background-color:#bac4c5;
}
100%{
-o-transform:scale(.3);
background-color:#FFFFFF;
}
}
@keyframes bounce_fadingBarsG{
0%{
transform:scale(1);
background-color:#bac4c5;
}
100%{
transform:scale(.3);
background-color:#FFFFFF;
}
}
.loading{ margin:10px;
}
-->
</style>
<script type="text/javascript"> function showLoading(){ document.getElementById('btnSubmit1').style.display='none'; document.getElementById('btnSubmit2').style.display='inline-block'; document.getElementById('loading').style.display='block'; return true; } function submitForm() { // submits form document.getElementById("ismForm").submit(); } function btnSearchClick() { if (document.getElementById("ismForm")) { setTimeout("submitForm()", 5000); // set timout } } </script>
<body>
<?
session_cache_limiter('none');
$path_to_image ='http://www.wapnhatrang.com/knight.png';
header('Cache-control: max-age='.(60*60*24*365));
header('Expires: '.gmdate(DATE_RFC1123,time()+60*60*24*365));
header('Last-Modified: '.gmdate(DATE_RFC1123,filemtime($path_to_image)));
if(empty($_SESSION['now']))
{$_SESSION['now'] = time();}
else{ $khoangthoigian = time() - $_SESSION['now']; $_SESSION['reload']++; if($_SESSION['reload'] >= 5 or $_SESSION['post'] >= 15 or $_SESSION['get'] >= 15) { $wait=(300-$khoangthoigian); if ($wait > 0) { baoloi("IP của bạn Ä‘Ă£ bị khĂ³a truy cập để đảm bảo an toàn.",$wait); } else { $_SESSION['now'] = time(); $_SESSION['reload'] = 0; $_SESSION['post'] = 0; $_SESSION['get'] = 0; } } elseif($khoangthoigian >= 10) { $_SESSION['now'] = time(); $_SESSION['reload'] = 0; $_SESSION['post'] = 0; $_SESSION['get'] = 0; }
}
?> <div class="container"> <form id="ismForm" name="vtlai_firewall" method="POST" action=""> <input type="hidden" value="<? echo $_SERVER['REQUEST_URI']; ?>" name="vtlai_firewall_redirect"> <input type="hidden" value="" name="vtlai_firewall_postcontent"> <div class="knight"></div> <div class="dvbtn"> <button class="btn btn-red" onclick="btnSearchClick();showLoading();" type="button" id="btnSubmit1">Click vào đây để tiếp tục</button> <button class="btn btn-gray" type="button" id="btnSubmit2" style="display: none;">Đang chuyển trang, vui lòng đợi...</button> <a href="" class="btn btn-red" id="btnSubmit3" style="display: none;">Click vào đây nếu đợi quá lâu</a> </div> </form> <div class="loading" id="loading" style="display: none;"> <div id="fadingBarsG"> <div id="fadingBarsG_1" class="fadingBarsG"> </div> <div id="fadingBarsG_2" class="fadingBarsG"> </div> <div id="fadingBarsG_3" class="fadingBarsG"> </div> <div id="fadingBarsG_4" class="fadingBarsG"> </div> <div id="fadingBarsG_5" class="fadingBarsG"> </div> <div id="fadingBarsG_6" class="fadingBarsG"> </div> <div id="fadingBarsG_7" class="fadingBarsG"> </div> <div id="fadingBarsG_8" class="fadingBarsG"> </div> </div> </div> </div> <div style="display:none"> <script type="text/javascript" language="javascript" src="http://xslt.alexa.com/site_stats/js/t/b?url=wapnhatrang.com"></script> </div>
</body>
</html>
<?
exit();
}}
?>
 
Bên trên