Вход Регистрация
Файл: dobavka/spb.php
Строк: 414
<?php

#############################################################################
# СКРИПТ ЗАТОЧЕН ПОД ДЦМС ЛЮБОЙ ВЕРСИИ! УСТАНОВКА ПРОСТА! РАСПОКАВАТЬ В ПАПКУ С ШАПКОЙ И ПРОИНКЛУДИТЬ!
# ИНКЛУДИМ ТАК require_once["spb.php"];
#                                                                           #
# Copyright 2010, 2011 spb                                         #
# wap.visavi.tk     by wap-mast.ru                                      #
#                                                                           #
#                                                                           #
#                                                                           #
# spb by General Public License         #
# Pro Software   by premium spb            #
#                                                                           #
# : этим кодом инклудим require_once("spb.php"); at the start of website scripts.  #
#                                                                           #
#############################################################################

##################
#
#
##################

$usehtaccessbans 1;
# бан через .htaccess 1-on 2-off
$filterGETvars 1;
#
#баним GET запросы 1-on 2-off
$filterCOOKIEvars 1;            //# фильтр кукисов 1-он 2-офф
$filterPOSTvars 0;            # 1 = sterilize HTML tags in POST variables, 0 = don't
$extraPOSTprotection 1;        # 1 = use the extra POST protection, 0 = don't
$extraGETprotection 0;        # 1 = use the extra GET protection, 0 = don't (not recommended!)
$checkmultiPOST 1;            # 1 = only allow maxmultiPOST number of successive POSTs, 0 = don't care
$maxmultiPOST 100;                # Maximum number of POST operations in a row, if checkmultipost is on. мультифлуд
$zipcompress 0;                # 1 = Compress pages using GZIP library (lower bandwidth, higher CPU), 0 = don't сжатие пакетника
$compresslevel 9;                # Compression level for zipcompressing, from 1 (low) to 9 (maximum) ком пресия
$cpuloadmonitor 0;            # 1 = block access if over a certain system load, 0 = don't отключает зомби -1
$cpumaxload 5.0;                # Maximum 5 minute system load average before blocking access блокировка при долгой загрузке, защита от грабов
$ccisessionpath "";            # if not blank, sets a directory path to store session files. саве сесия в файл

##### Encryption/Encoding Variables

# ниже блокинг через джава
$javababble 0;                # 1 = Use Encoding/Encrypting (Must be on for any), 0 = Don't
$javaencrypt 0;                # Do actual encrypting of HTML, not just escaping (warning: may slow display)
$preservehead 0;                # 1 = Only encode/encrypt between BODY tags, 0 = encode/encrypt whole document

##################
#
# Check for in-script overrides
#
##################

if (isset($zipoverride)) {
  if (!isset(
$_REQUEST["zipoverride"])) {
    
$zipcompress $zipoverride;
    unset(
$zipoverride);
  }
}

if (isset(
$babbleoverride)) {
  if (!isset(
$_REQUEST["babbleoverride"])) {
    
$javababble $babbleoverride;
    unset(
$babbleoverride);
  }
}

##################
#
# Function: CCIJavaBabble
#
# Usage: Takes some HTML, url-encodes it (jumbles it) then returns the javascript needed to display it properly.
#
##################

function CCIJavaBabble($myoutput) {
  global 
$mycrypto$myalpha2$javaencrypt$preservehead;
  
$s $myoutput;
  
$s ereg_replace("n","",$s);

  if (
$preservehead) {  
    
eregi("(^.+<body[^>]*>)",$s,$chunks);
    
$outputstring $chunks[1];
    
eregi_replace($headpart,"",$s);

    
eregi("(</body[^>]*>.*)",$s,$chunks);
    
$outputend $chunks[1];
    
eregi_replace($footpart,"",$s);
  } else {
    
$outputstring "";
    
$outputend "";
  }
  
  if (
$javaencrypt) {
    
$s strtr($s,$myalpha2,$mycrypto);
    
$s rawurlencode($s);
    
$outputstring .= "<script>var cc=unescape('$s'); ";
    
$outputstring .= "var index = document.cookie.indexOf('" md5($_SERVER["REMOTE_ADDR"] . $_SERVER["SERVER_ADDR"]) . "='); " .
      
"var aa = '$myalpha2'; " .
      
"if (index > -1) { " .
      
"  index = document.cookie.indexOf('=', index) + 1; " .
      
"  var endstr = document.cookie.indexOf(';', index); " .
      
"  if (endstr == -1) endstr = document.cookie.length; " .
      
"  var bb = unescape(document.cookie.substring(index, endstr)); " .
      
"} " .
      
"cc = cc.replace(/[$myalpha2]/g,function(str) { return aa.substr(bb.indexOf(str),1) }); document.write(cc);";
  } else {
    
$outputstring .= "<script>document.write(unescape('" rawurlencode($s) . "'));";
  }
  
$outputstring .= "</script><noscript>You must enable флуд атака зайдите позже</noscript>" $outputend;
       
  return 
$outputstring;
}

##################
#
# Function: CCIClearSession
#
# Format: CCIClearSession()
# Returns: Nothing
#
# Usage: Clears all the data out of the session record other than data used for this script
#
##################

function CCIClearSession() {
  
$getvariables array_keys($_SESSION);
  
$count 0;
  while(
$count count($getvariables)) {
    if (
substr($getvariables[$count],0,7) != "ccisec-") {
      
session_unregister($getvariables[$count]); 
      if (
ini_get('register_globals')) unset($$getvariables[$count]);
    }
    
$count++;
  }
}

##################
#
# Function: CCIBanIP
#
# Format: CCIBanIP(IPAddress)
# Returns: Nothing
#
# Usage: Will open and add a deny line to the .htaccess file in the same directory to deny all
#        accessing by a given IP address.
# бан на сервер
##################

function CCIBanIP($banip) {
  
$filelocation ".htaccess";
  
$limitend "# End of CCI Security Sectionn";
  
$newline "deny from $banipn";
  if (
file_exists($filelocation)) {
    
$mybans file($filelocation);
    
$lastline "";
    if (
in_array($newline,$mybans)) exit();
    if (
in_array($limitend,$mybans)) {      
      
$i count($mybans)-1;
      while (
$mybans[$i] != $limitend) {
        
$lastline array_pop($mybans) . $lastline;
        
$i--;
      }
      
$lastline array_pop($mybans) . $lastline;
      
$lastline array_pop($mybans) . $lastline;
      
$lastline array_pop($mybans) . $lastline;
      
array_push($mybans,$newline,$lastline);
    } else {
      
array_push($mybans,"nn# CCI Security Scriptn","<Limit GET POST>n","order allow,denyn",$newline,"allow from alln","</Limit>n",$limitend);
    }
  } else {
    
$mybans = array("# CCI Security Scriptn","<Limit GET POST>n","order allow,denyn",$newline,"allow from alln","</Limit>n",$limitend);
  }  
  
$myfile fopen($filelocation,"w");
  
fwrite($myfile,implode($mybans,""));
  
fclose($myfile);
    
}

##################
#
# Function: CCIFloodCheck
#
# Format: CCIFloodCheck("identifier",interval,threshold)
# Returns: 1 if requested without minimum interval, a threshold number of times.  0 if not.
#
# Usage: For functions that require flood control pass a unique identifier, the minimum number of
#        seconds that should be waited between repeats of the function, and a number of times that
#        function can be called too quickly before it sets off the flood trapping.
#
##################

function CCIFloodCheck($identifier,$interval,$threshold=1) {
  
$myresult 0;
  if (isset(
$_SESSION["ccisec-" $identifier])) {
    if (
$_SESSION["ccisec-" $identifier] > (time()-$interval)) {
      if (
$threshold<2) {
        
$myresult 1;
      } else {
        if (!isset(
$_SESSION["ccisec-" $identifier "-counter"])) {
          
$_SESSION["ccisec-" $identifier "-counter"] = 1;
        } else {
          
$_SESSION["ccisec-" $identifier "-counter"]++;
          if (
$_SESSION["ccisec-" $identifier "-counter"] >= $threshold) {
            
$myresult 1;
          }
        }
      }
    }
    
$_SESSION["ccisec-" $identifier] = time();
  }
  return 
$myresult
}

################################################################################

srand(time());
if (
eregi("ccisecurity.php",$_SERVER["SCRIPT_NAME"])) exit();

if (
$ccisessionpath != ""session_save_path($ccisessionpath);
session_name(md5($_SERVER["REMOTE_ADDR"] . $_SERVER["HTTP_HOST"] . "CCI"));

ini_set("session.use_only_cookies","1");
ini_set("session.use_trans_sid","0");

if ((
$zipcompress) && (eregi("gzip",$_SERVER["HTTP_ACCEPT_ENCODING"]))) {
  
ini_set("zlib.output_compression","On");
  
ini_set("zlib.output_compression_level",$compresslevel);
  
ob_start("ob_gzhandler"); 
}
if (
$javababble) {
  if (
$javaencrypt) {
    
$myalpha array_merge(range("a","z"),range("A","Z"),range("0","9"));
    
$myalpha2 implode("",$myalpha);
    
shuffle($myalpha);
    
$mycrypto implode("",$myalpha);
    
setcookie(md5($_SERVER["REMOTE_ADDR"] . $_SERVER["SERVER_ADDR"]),$mycrypto);
    unset(
$myalpha);
  }
  
ob_start("cciJavaBabble");
}

if (
substr_count($_SERVER["SERVER_NAME"],".")>1) {
  
$cookiedomain eregi_replace("^[^.]+.",".",$_SERVER["SERVER_NAME"]);
} else 
$cookiedomain "." $_SERVER["SERVER_NAME"];

$ip $_SERVER["REMOTE_ADDR"];
$mykeyname md5($_SERVER["REMOTE_ADDR"] . $_SERVER["HTTP_HOST"] . $_SERVER["DOCUMENT_ROOT"] . "CCI");
$myposthashname md5($_SERVER["REMOTE_ADDR"] . $_SERVER["HTTP_HOST"] . $_SERVER["PATH"] . "CCI");

$myhash md5($_SERVER["REMOTE_ADDR"] . $_SERVER["HTTP_USER_AGENT"] . 
                        
$_SERVER["HTTP_HOST"] . $_SERVER["DOCUMENT_ROOT"] . 
                        
$_SERVER["SERVER_SOFTWARE"] . $_SERVER["PATH"] . "X");
                                            
$mysession md5($_SERVER["REMOTE_ADDR"] . $_SERVER["HTTP_HOST"]);                        
session_id($mysession);
session_start();

if (!isset(
$_SESSION["ccisec-errors"])) $_SESSION["ccisec-errors"] = 0;
if (
$_SESSION["ccisec-errors"]>=10) {
  
CCIBanIP($ip);
  exit();
}

if (
$_SESSION["ccisec-myhash"] != $myhash) {        
  
$_SESSION["ccisec-myhash"] = $myhash;
  
$_SESSION["ccisec-errors"]++;
  
session_write_close();
  
Header("Location: http://" $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
  exit();
}

if ((!isset(
$_COOKIE[$mykeyname])) || ($_COOKIE[$mykeyname] != $myhash)) {
  
  if (!isset(
$_SESSION["ccisec-nocookie"])) {
    
$_SESSION["ccisec-nocookie"] = 1;
  } else {
    
$_SESSION["ccisec-nocookie"]++;
  }
  
  if ((
$usehtaccessbans) && ($_SESSION["ccisec-nocookie"]>10)) CCIBanIP($ip);
    
  
setcookie($mykeyname,$myhash,0,"/",$cookiedomain);
       
  if (
$_SESSION["ccisec-nocookie"]>2) {
    echo 
"<div><div style='text-align:right'><div span='color:#990000'>Access Denied<br><br>
 ip (
$ip).cookie забанены
<br/>для снятия бана нужно включить cookie в браузере</div></div></div>"
;
    
session_write_close();
    exit();
  } 
  if (
$extraGETprotection) {
    
$_SESSION["ccisec-hash"] = md5(uniqid(time()));
    
setcookie($myposthashname,$_SESSION["ccisec-hash"],0,"/",$cookiedomain);  
  } 
  
CCIClearSession();  
  
session_write_close();
  
Header("Location: http://" $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
  exit();
} else 
$_SESSION["ccisec-nocookie"] = 0;

if ((
$usehtaccessbans) && ($_SESSION["ccisec-fastaccesses"]>50)) CCIBanIP($ip);

if (
$_SESSION["ccisec-fastaccesses"]>25) {
  if ((
time()-60) < $_SESSION["ccisec-lastaccess"]) {
    echo 
"<h1>Access Denied</h1><br><br>Ишь какой быстрый!!айпи ($ip)заблокирован.  ждите 60 секунд.";
header("Location:index.php");
    
$_SESSION["ccisec-fastaccesses"]++;
    
$_SESSION["ccisec-lastaccess"]=time();
    exit();

  }
}

if (!isset(
$_SESSION["ccisec-lastaccess"])) {
  
$_SESSION["ccisec-lastaccess"]=time();
} else {
  if ((
time()-2) < $_SESSION["ccisec-lastaccess"]) {
    if (!isset(
$_SESSION["ccisec-fastaccesses"])) $_SESSION["ccisec-fastaccesses"] = 0;
    
$_SESSION["ccisec-fastaccesses"]++;
  } else {
    
$_SESSION["ccisec-fastaccesses"] = 0;
  }
  
$_SESSION["ccisec-lastaccess"]=time();
}

if (
$_SERVER["REQUEST_METHOD"] == "POST") {

  if (
$checkmultiPOST) {
    if ((
$_SESSION["ccisec-lastoperation"] == "POST") && ($_SESSION["ccisec-opcount"] >= $maxmultiPOST)) {
      echo 
"<h1>Access Denied</h1><br><br>
Мультифлуд"
;
header("Location:index.php");
      
$_SESSION["ccisec-errors"]++;
      exit(); 
    }
  }     

  if (
$extraPOSTprotection) {
    if ((!isset(
$_COOKIE[$myposthashname])) || ($_COOKIE[$myposthashname] != $_SESSION["ccisec-hash"])) {
      echo 
"<h1>Access Denied</h1><br><br>
Ошибка доступа"
;
header("Location:index.php");
      
$_SESSION["ccisec-errors"]++;
      exit();
    }
  }
} else if ((
$extraGETprotection) && ($_SERVER["REQUEST_METHOD"] == "GET")) {
  if ((!isset(
$_COOKIE[$myposthashname])) || ($_COOKIE[$myposthashname] != $_SESSION["ccisec-hash"])) {
    echo 
"<h1>Access Denied</h1><br><br>
Ошибка доступа."
;
header("Location:index.php");
    
$_SESSION["ccisec-errors"]++;
    exit();
  }
} else if (
$_SERVER["REQUEST_METHOD"] != "GET") {
  exit();
}

if ((
$extraPOSTprotection) || ($extraGETprotection)) {
  
srand(time());
  
$_SESSION["ccisec-hash"] = md5(uniqid(time()));
  
setcookie($myposthashname,$_SESSION["ccisec-hash"],0,"/",$cookiedomain);
}

if (
$_SESSION["ccisec-lastoperation"] == $_SERVER["REQUEST_METHOD"]) {
  if (!isset(
$_SESSION["ccisec-opcount"])) {
    
$_SESSION["ccisec-opcount"] = 1;
  } else {
    
$_SESSION["ccisec-opcount"]++;
  }
} else 
$_SESSION["ccisec-lastoperation"] = $_SERVER["REQUEST_METHOD"];

# Make special characters safe in any GET based cgi variables.

if ($filterGETvars) {
  
$getvariables array_keys($_GET);
  
$count 0;
  while(
$count count($getvariables)) {
    
$_GET[$getvariables[$count]] = htmlspecialchars($_GET[$getvariables[$count]]);
    if (
ini_get('register_globals')) $$getvariables[$count] = $_GET[$getvariables[$count]];
    
$count++;
  }
}

if (
$filterPOSTvars) {
  
$getvariables array_keys($_POST);
  
$count 0;
  while(
$count count($getvariables)) {
    
$_POST[$getvariables[$count]] = htmlspecialchars($_POST[$getvariables[$count]]);
    if (
ini_get('register_globals')) $$getvariables[$count] = $_POST[$getvariables[$count]];
    
$count++;
  }
}

if (
$filterCOOKIEvars) {
  
$getvariables array_keys($_COOKIE);
  
$count 0;
  while(
$count count($getvariables)) {
    
$_COOKIE[$getvariables[$count]] = htmlspecialchars($_COOKIE[$getvariables[$count]]);
    if (
ini_get('register_globals')) $$getvariables[$count] = $_COOKIE[$getvariables[$count]];
    
$count++;
  }
}

if (
$cpuloadmonitor) {
  
$myshelldata shell_exec("uptime");
  
$myshelldata eregi_replace(".*average.*: ","",$myshelldata);
  
$myshelldata eregi_replace(", .*","",$myshelldata);
  if (
$myshelldata >= $cpumaxload) {
    echo 
"<h1>ваш ип забанен</h1><br><br>BY SPB.";  
    exit();
  }
  unset(
$myshelldata);
}

unset(
$count);
unset(
$getvariables);
unset(
$ip);
unset(
$cookiedomain);
unset(
$mykeyname);
unset(
$myposthashname);
unset(
$myhash);
unset(
$mysession);

$_SESSION["ccisec-errors"] = 0;
if (
connection_aborted()) exit();

# внимание скрипт с лицензией при установке запрещено распростронение!
?>
Онлайн: 0
Реклама