define('wpadtiddos_seconds_limit_GET',1); define('wpadtiddos_seconds_limit_XHR',3); class wp_antiddos { var $enable = true; var $hits_limit_GET = 3; // hits limit for GET requests (per wpadtiddos_seconds_limit_GET second) var $hits_limit_XHR = 3; // hits limit for XHR requests (per wpadtiddos_seconds_limit_XHR second) var $seconds_limit_POST = 3; // seconds limit for POST requests var $seconds_limit_AUTH = 3; // seconds limit for AUTH (Password) requests var $visitor; // status of visitor = raw|cool|warm|hot var $warm_level; // number of hits for last $seconds_limit seconds that cause visitor`s status turn to warm var $auto = true; // block visitors by AntiDDOS var $delay_time = 30; // seconds of delay of blocked visitors var $block_cnet = true; // block all C class net. var $cloudflare = true; // convert Cloudflare HTTP_CF_CONNECTING_IP to REMOTE_ADDR var $send_header = false; // send "WP_AntiDDOS: yes" header for debug purposes var $only_params_enabled = false; // Only Params feature enabled var $only_params = 's'; // the only GET/POST params that trigger checkup var $status, $error_msg; var $conn; // mysql connection var $hits = false; // actual hits number for current IP var $cookie = ''; // wpantiddos cookie value that prevents anti DDOS processing var $table_name = ''; var $pass_param = 'pwd'; // name of POST parameter that indentify Login (AUTH) request var $delay_message = 'Our server is currently overloaded, your request will be repeated automatically in %s seconds'; var $delay_message_auth = 'Our server is currently overloaded, your request will be repeated automatically in %s seconds'; public function __construct() { if (isset($GLOBALS['wp_antiddos_instance'])) return; else $GLOBALS['wp_antiddos_instance'] = &$this; if ($_SERVER['REMOTE_ADDR']=='127.0.0.1') return; $this->conn = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD); $ok = mysqli_select_db($this->conn,DB_NAME); if (!$ok) return false; $this->get_options(); // plugin disabled if (!$this->enable) return; // current request is admin's one if (isset($_COOKIE['wpantiddos']) && $_COOKIE['wpantiddos']==$this->cookie) return; if ($this->only_params_enabled) if (!$this->only_param_detected()) return; // detect request type and limits if ($this->xhr_request()) { if ($this->hits_limit_XHR=='ANY') return; $request_type = 'xhr'; $hits_limit = $this->hits_limit_XHR; $seconds_limit = wpadtiddos_seconds_limit_XHR; } elseif ($_POST && isset($_POST[$this->pass_param]) ) { if ($this->seconds_limit_AUTH=='ANY') return; $request_type = 'auth'; $seconds_limit = $this->seconds_limit_AUTH; $this->only_params .= ' '.$this->pass_param; $hits_limit = 1; } elseif ($_POST) { if ($this->seconds_limit_POST=='ANY') return; $request_type = 'post'; $hits_limit = 1; $seconds_limit = $this->seconds_limit_POST; } else { if ($this->hits_limit_GET=='ANY') return; $request_type = 'get'; $hits_limit = $this->hits_limit_GET; $seconds_limit = wpadtiddos_seconds_limit_GET; } if ($this->send_header) header("WP_AntiDDOS: yes"); if ($this->cloudflare) { if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP']; } $this->ip = $_SERVER['REMOTE_ADDR']; if ($this->block_cnet) $this->ip = substr($this->ip,0,strrpos($this->ip,'.')+1); $this->warm_level = ceil($hits_limit/2); try { $res = mysqli_query($this->conn,"SELECT count(*) kount FROM $this->table_name WHERE ip='".addslashes($this->ip)."' AND tstamp>".(time()-$seconds_limit)." AND type='$request_type'"); $row = mysqli_fetch_assoc($res); if (!$row) $this->error_msg = 'Error detected'; $this->hits = @$row['kount']+1; // consider current request too if ($this->hits==0) // if no hits from this IP $this->visitor = "new"; elseif ($this->hits>$hits_limit) $this->visitor = "hot"; elseif ($this->hits>=$this->warm_level) $this->visitor = "warm"; else $this->visitor = "cool"; // add current hit mysqli_query($this->conn,"INSERT INTO $this->table_name SET ip='$this->ip', type='$request_type', tstamp=".time()); // cleanup ip list $clear_time = max($this->delay_time,$seconds_limit); mysqli_query($this->conn,"DELETE FROM $this->table_name WHERE tstamp<".(time()-$clear_time)); } catch(Exception $e) { $this->error_msg = $e->getString(); $this->status = 'error'; mysqli_close($this->conn); return; } mysqli_close($this->conn); if (!empty($this->error_msg) ) { $this->status = 'error'; } if ($this->auto && $this->visitor=='hot') { header('HTTP/1.0 503 Service Unavailable'); header('Status: 503 Service Unavailable'); header("Retry-After: ".($this->delay_time+1)); // submit form first if POST request if (!$_POST) print "
"; else { $inputs = $this->array_to_fields($_POST); print ' '; } if ($request_type=='auth') printf("Selon une \u00e9tude de l’agence scientifique nationale australienne (Csiro), dans un milieu frais et sombre, le coronavirus pouvait survivre jusqu’\u00e0 28 jours sur des surfaces telles que des t\u00e9l\u00e9phones<\/strong> et billets de banque.<\/p>\n\n\n\n Il est pr\u00e9cis\u00e9 que jusqu’\u00e0 20 degr\u00e9s, le SARS-CoV-2 est \u00ab extr\u00eamement r\u00e9sistant \u00bb<\/strong> sur des surfaces lisses, comme des \u00e9crans de t\u00e9l\u00e9phone. Il peut survivre 28 jours sur du verre, de l’acier et des billets en polym\u00e8re. \u00c0 30 degr\u00e9s, ce taux de survie tombe \u00e0 7 jours et \u00e0 40 degr\u00e9s, il n’est plus que de 24 heures.<\/p>\n\n\n\n Ce n’est pas la premi\u00e8re fois qu’une \u00e9tude met en lumi\u00e8re la dur\u00e9e de vie du Covid-19 sur les surfaces inertes. Si il est recommand\u00e9 de jeter les emballages inutiles en rentrant des courses, qu’en est-il des objets tels que mobilier, poign\u00e9es de porte, \u00e9lectronique, t\u00e9l\u00e9commandes etc ?<\/p>\n\n\n\n Il peut \u00eatre opportun de nettoyer et d\u00e9sinfecter r\u00e9guli\u00e8rement<\/strong> les objets avec lesquels nous rentrons en contact, d’autant plus quand nous ne sommes pas les seuls \u00e0 les utiliser, en particulier dans une famille de plusieurs personnes, ou sur son lieu de travail !<\/p>\n\n\n\n Utiliser une\u00a0protection r\u00e9manente qui d\u00e9sinfecte en continu<\/a><\/strong>\u00a0\u00e0 votre place garantit la salubrit\u00e9 des zones de contact, m\u00eame en cas d’oubli de nettoyage : installez une fois, et soyez prot\u00e9g\u00e9s de un \u00e0 cinq ans et \u00e9conomisez autant de lingettes et de produits biocides.<\/p>\n\n\n\n cr\u00e9dit photo : Freepik<\/p>\n","protected":false},"excerpt":{"rendered":" Selon une \u00e9tude de l’agence scientifique nationale australienne (Csiro), dans un milieu frais et sombre, le coronavirus pouvait survivre jusqu’\u00e0 28 jours sur des surfaces telles que des t\u00e9l\u00e9phones et billets de banque. Il est pr\u00e9cis\u00e9 que jusqu’\u00e0 20 degr\u00e9s, le SARS-CoV-2 est \u00ab extr\u00eamement r\u00e9sistant \u00bb sur des surfaces lisses, comme des \u00e9crans de t\u00e9l\u00e9phone. Il peut survivre 28 jours sur du verre, de l’acier et des billets en polym\u00e8re. \u00c0 30 degr\u00e9s, ce taux de survie tombe \u00e0 7 jours et \u00e0 40 degr\u00e9s, il n’est plus que de 24 heures. Ce n’est pas la premi\u00e8re fois qu’une \u00e9tude met en lumi\u00e8re la dur\u00e9e de vie du Covid-19 sur les surfaces inertes. Si il est recommand\u00e9 de jeter les emballages inutiles en rentrant des courses, qu’en est-il des objets tels que mobilier, poign\u00e9es de porte, \u00e9lectronique, t\u00e9l\u00e9commandes etc ? Il peut \u00eatre opportun de nettoyer et d\u00e9sinfecter r\u00e9guli\u00e8rement les objets avec lesquels nous rentrons en contact, d’autant plus quand nous ne sommes pas les seuls \u00e0 les utiliser, en particulier dans une famille de plusieurs personnes, ou sur son lieu de travail ! Utiliser une\u00a0protection r\u00e9manente qui d\u00e9sinfecte en continu\u00a0\u00e0 votre place garantit la salubrit\u00e9 des zones de contact, m\u00eame en cas d’oubli de nettoyage : installez une fois, et soyez prot\u00e9g\u00e9s de un \u00e0 cinq ans et \u00e9conomisez autant de lingettes et de produits biocides. Voir la boutique en ligne des produits r\u00e9manents cr\u00e9dit photo : Freepik<\/p>\n","protected":false},"author":1,"featured_media":1098,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[88,82,90,89,70,83,41],"yoast_head":"\nVoir la boutique en ligne des produits r\u00e9manents<\/a><\/h4>\n\n\n\n