เชถเซเชญ เชฆเชฟเชตเชธ! เชฒเซเชเชฎเชพเช เชนเซเช เชคเชฎเชจเซ เชเชนเซเชถ เชเซ เชจเชฟเชฏเชฎเชฟเชค เชนเซเชธเซเชเชฟเชเชเชจเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชเซเชตเซ เชฐเซเชคเซ IP เชธเชฐเชจเชพเชฎเชพเชเชจเซ เชชเชเชกเซ เชถเชเซ เชเซ เชเซ เชธเชพเชเช เชชเชฐ เชตเชงเซ เชชเชกเชคเซ เชญเชพเชฐ เชชเซเชฆเชพ เชเชฐเซ เชเซ เช
เชจเซ เชชเชเซ เชนเซเชธเซเชเชฟเชเช เชเซเชฒเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชคเซเชฎเชจเซ เช
เชตเชฐเซเชงเชฟเชค เชเชฐเซ เชเซ, เชคเซเชฏเชพเช php เชเซเชกเชจเซ "เชฅเซเชกเซเช" เชนเชถเซ, เชฅเซเชกเชพ เชธเซเชเซเชฐเซเชจเชถเซเชเซเชธ เชนเชถเซ.
เชเชจเชชเซเช เชกเซเชเชพ:
- CMS เชตเชฐเซเชกเชชเซเชฐเซเชธ เชชเชฐ เชฌเชจเชพเชตเซเชฒ เชตเซเชฌเชธเชพเชเช
- เชนเซเชธเซเชเชฟเชเช เชฌเซเชเซเช (เช เชเซเช เชเชพเชนเซเชฐเชพเชค เชจเชฅเซ, เชชเชฐเชเชคเซ เชเชกเชฎเชฟเชจ เชชเซเชจเชฒเชจเชพ เชธเซเชเซเชฐเซเชจเชถเซเช เช เชเซเชเซเชเชธ เชนเซเชธเซเชเชฟเชเช เชชเซเชฐเชฆเชพเชคเชพเชจเชพ เชนเชถเซ)
- เชตเชฐเซเชกเชชเซเชฐเซเชธ เชธเชพเชเช 2000เชจเซ เชถเชฐเซเชเชคเชฎเชพเช เชเซเชฏเชพเชเช เชถเชฐเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ เช เชจเซ เชคเซเชฎเชพเช เชฎเซเชเซ เชธเชเชเซเชฏเชพเชฎเชพเช เชฒเซเชเซ เช เชจเซ เชธเชพเชฎเชเซเชฐเซ เชเซ
- PHP เชธเชเชธเซเชเชฐเชฃ 7.2
- WP เชชเชพเชธเซ เชจเชตเซเชจเชคเชฎ เชธเชเชธเซเชเชฐเชฃ เชเซ
- เชเซเชฒเซเชฒเชพ เชเซเชเชฒเชพเช เชธเชฎเชฏเชฅเซ, เชธเชพเชเช เชนเซเชธเซเชเชฟเชเช เชกเซเชเชพ เช เชจเซเชธเชพเชฐ MySQL เชชเชฐ เชตเชงเซ เชญเชพเชฐ เชชเซเชฆเชพ เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเชฏเซเช. เชฆเชฐเชฐเซเช เช เชฎเซเชฒเซเชฏ เชเชพเชคเชพ เชฆเซเช เชงเซเชฐเชฃเชจเชพ 120% เชเชฐเชคเชพเช เชตเชงเซ เชเชพเชฏ เชเซ
- เชฏเชพเชจเซเชกเซเชเซเชท เช เชจเซเชธเชพเชฐ. เชฎเซเชเซเชฐเชฟเชเชพ เชธเชพเชเชเชจเซ เชฆเชฐเชฐเซเช 100-200 เชฒเซเชเซ เชฎเซเชฒเชพเชเชพเชค เชฒเซ เชเซ
เชธเซ เชชเซเชฐเชฅเชฎ, เช เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช:
- เชกเซเชเชพเชฌเซเช เชเซเชทเซเชเชเซ เชธเชเชเชฟเชค เชเชเชฐเซ เชธเชพเชซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชนเชคเชพ
- เชฌเชฟเชจเชเชฐเซเชฐเซ เชชเซเชฒเชเชเชจเซเชธ เช เชเซเชทเชฎ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชนเชคเชพ, เชเซเชจเชพ เชเซเชกเชจเชพ เชตเชฟเชญเชพเชเซ เชฆเซเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชนเชคเชพ
เชคเซ เช เชธเชฎเชฏเซ, เชนเซเช เชคเชฎเชพเชฐเซเช เชงเซเชฏเชพเชจ เช เชนเชเซเชเชค เชคเชฐเชซ เชฆเซเชฐเชตเชพ เชฎเชพเชเชเซ เชเซเช เชเซ เชเซเชถเซเชเช เชตเชฟเชเชฒเซเชชเซ (เชเซเชถเชฟเชเช เชชเซเชฒเชเชเชจเซเชธ) เช เชเชฎเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชนเชคเชพ, เช เชตเชฒเซเชเชจเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชนเชคเชพ - เชชเชฐเชเชคเซ เชเช เชธเชพเชเช เชชเชฐเชฅเซ 120% เชจเซ เชฒเซเชก เช เชชเชฐเชฟเชตเชฐเซเชคเชฟเชค เชนเชคเซ เช เชจเซ เชคเซ เชซเชเซเชค เชตเชงเซ เชถเชเซ เชเซ.
เชนเซเชธเซเชเชฟเชเช เชกเซเชเชพเชฌเซเชธเซเชธ เชชเชฐเชจเซ เช เชเชฆเชพเชเชฟเชค เชฒเซเชก เชเซเชตเซ เชฆเซเชเชพเชคเซ เชนเชคเซ
เชเซเช เชชเชฐ เชชเซเชฐเชถเซเชจเชฎเชพเช เชฐเชนเซเชฒเซ เชธเชพเชเช เชเซ, เชจเซเชเซ เช
เชจเซเชฏ เชธเชพเชเชเซเชธ เชเซ เชเซ เชธเชฎเชพเชจ เชธเซเชฎเซ เช
เชจเซ เชฒเชเชญเช เชธเชฎเชพเชจ เชเซเชฐเชพเชซเชฟเช เชงเชฐเชพเชตเซ เชเซ, เชชเชฐเชเชคเซ เชเชเชพ เชฒเซเชก เชฌเชจเชพเชตเซ เชเซ.
เชเชจเชพเชฒเซเช
- เชกเซเชเชพ เชเซเชถเซเชเช เชตเชฟเชเชฒเซเชชเซ เชธเชพเชฅเซ เชเชฃเชพ เชชเซเชฐเชฏเชคเซเชจเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชนเชคเชพ, เชเซเชเชฒเชพเช เช เช เชตเชพเชกเชฟเชฏเชพเชฎเชพเช เช เชตเชฒเซเชเชจเซ เชนเชพเชฅ เชงเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชนเชคเชพ (เชธเชฆเชจเชธเซเชฌเซ, เช เชธเชฎเชฏ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชนเซเชธเซเชเชฟเชเชเซ เชฎเชจเซ เชเซเชฏเชพเชฐเซเชฏ เชฒเชเซเชฏเซเช เชจเชฅเซ เชเซ เชนเซเช เชเซเชฌ เชเชฐเชพเชฌ เชเซเช เช เชจเซ เชกเชฟเชธเซเชเชจเซเชเซเช เชฅเชเชถ)
- เชงเซเชฎเซ เชเซเชตเซเชฐเซเช เชฎเชพเชเซ เชตเชฟเชถเซเชฒเซเชทเชฃ เช เชจเซ เชถเซเชง เชนเชคเซ, เชชเชเซ เชกเซเชเชพเชฌเซเช เชฎเชพเชณเชเซเช เช เชจเซ เชเซเชทเซเชเชเชจเซ เชชเซเชฐเชเชพเชฐ เชฅเซเชกเซ เชฌเชฆเชฒเชพเชฏเซ เชนเชคเซ
- เชชเซเชฅเซเชฅเชเชฐเชฃ เชฎเชพเชเซ, เช เชฎเซ เชฎเซเชเซเชฏเชคเซเชตเซ เชฌเชฟเชฒเซเช-เชเชจ AWStats เชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ (เชฎเชพเชฐเซเช เชฆเซเชตเชพเชฐเชพ, เชคเซ เชเซเชฐเชพเชซเชฟเช เชตเซเชฒเซเชฏเซเชฎเชจเชพ เชเชงเชพเชฐเซ เชธเซเชฅเซ เชเชฐเชพเชฌ IP เชเชกเซเชฐเซเชธเชจเซ เชเชฃเชคเชฐเซ เชเชฐเชตเชพเชฎเชพเช เชฎเชฆเชฆ เชเชฐเซ เชเซ.
- เชฎเซเชเซเชฐเชฟเช - เชฎเซเชเซเชฐเชฟเช เชซเชเซเชค เชฒเซเชเซ เชตเชฟเชถเซ เชฎเชพเชนเชฟเชคเซ เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ, เชฌเซเชเซ เชตเชฟเชถเซ เชจเชนเซเช
- WP เชฎเชพเชเซ เชชเซเชฒเชเชฟเชจเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชเซ เชเซ เชธเซเชฅเชพเชจเชจเชพ เชฆเซเชถ เช เชจเซ เชตเชฟเชตเชฟเชง เชธเชเชฏเซเชเชจเซ เชฆเซเชตเชพเชฐเชพ เชชเชฃ เชฎเซเชฒเชพเชเชพเชคเซเชเชจเซ เชซเชฟเชฒเซเชเชฐ เช เชจเซ เช เชตเชฐเซเชงเชฟเชค เชเชฐเซ เชถเชเซ เชเซ.
- "เช เชฎเซ เชเชพเชณเชตเชฃเซ เชนเซเช เชณ เชเซเช" เชจเซ เชจเซเชเชง เชธเชพเชฅเซ เชเช เชฆเชฟเชตเชธ เชฎเชพเชเซ เชธเชพเชเชเชจเซ เชฌเชเชง เชเชฐเชตเชพเชจเซ เชธเชเชชเซเชฐเซเชฃ เชเชฎเซเชฒ เชฐเชธเซเชคเซ เชฌเชนเชพเชฐ เชเชตเซเชฏเซ - เช เชชเซเชฐเชเซเชฏเชพเชค เชชเซเชฒเชเชเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเชฃ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช. เช เชเชฟเชธเซเชธเชพเชฎเชพเช, เช เชฎเซ เชฒเซเชก เชเชเชตเชพเชจเซ เช เชชเซเชเซเชทเชพ เชฐเชพเชเซเช เชเซเช, เชชเชฐเชเชคเซ เชถเซเชจเซเชฏ เชฎเซเชฒเซเชฏเซ เชชเชฐ เชจเชนเซเช, เชเชพเชฐเชฃ เชเซ WP เชตเชฟเชเชพเชฐเชงเชพเชฐเชพ เชนเซเช เชชเชฐ เชเชงเชพเชฐเชฟเชค เชเซ เช เชจเซ เชชเซเชฒเชเชเชจเซเชธ เชคเซเชฎเชจเซ เชชเซเชฐเชตเซเชคเซเชคเชฟ เชถเชฐเซ เชเชฐเซ เชเซ เชเซเชฏเชพเชฐเซ "เชนเซเช" เชฅเชพเชฏ เชเซ, เช เชจเซ "เชนเซเช" เชฅเชพเชฏ เชคเซ เชชเชนเซเชฒเชพเช, เชกเซเชเชพเชฌเซเชเชจเซ เชตเชฟเชจเชเชคเซเช เชเชฐเซ เชถเชเซ เชเซ. เชชเชนเซเชฒเซเชฅเซ เช เชฌเชจเซเชฒ เชเซ
เชเชเชกเชฟเชฏเชพ
- เชเชตเชพ IP เชธเชฐเชจเชพเชฎเชพเชเชจเซ เชเชฃเชคเชฐเซ เชเชฐเซ เชเซ เชเซเชเชเชพ เชเชพเชณเชพเชฎเชพเช เชเชฃเซ เชฌเชงเซ เชตเชฟเชจเชเชคเซเช เชเชฐเซ เชเซ.
- เชธเชพเชเช เชชเชฐ เชนเชฟเชเชจเซ เชธเชเชเซเชฏเชพ เชฐเซเชเซเชฐเซเชก เชเชฐเซ
- เชนเชฟเชเชจเซ เชธเชเชเซเชฏเชพเชจเชพ เชเชงเชพเชฐเซ เชธเชพเชเชเชจเซ เชเชเซเชธเซเชธเชจเซ เช เชตเชฐเซเชงเชฟเชค เชเชฐเซ
- .htaccess เชซเชพเชเชฒเชฎเชพเช โDeny fromโ เชเชจเซเชเซเชฐเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฌเซเชฒเซเช เชเชฐเซ
- เชฎเซเช เช เชจเซเชฏ เชตเชฟเชเชฒเซเชชเซเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชงเชพ เชจเชฅเซ, เชเซเชฎ เชเซ iptables เช เชจเซ Nginx เชฎเชพเชเซเชจเชพ เชจเชฟเชฏเชฎเซ, เชเชพเชฐเชฃ เชเซ เชนเซเช เชนเซเชธเซเชเชฟเชเช เชตเชฟเชถเซ เชฒเชเซ เชฐเชนเซเชฏเซ เชเซเช
เชเช เชตเชฟเชเชพเชฐ เชฆเซเชเชพเชฏเซ เชเซ, เชคเซเชฅเซ เชคเซเชจเซ เช เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชเซเชฎ เชเซ เช เชตเชฟเชจเชพ...
- เชกเซเชเชพ เชเชเช เชพ เชเชฐเชตเชพ เชฎเชพเชเซ เชเซเชทเซเชเชเซ เชฌเชจเชพเชตเชตเซ
CREATE TABLE `wp_visiters_bot` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `ip` VARCHAR(300) NULL DEFAULT NULL, `browser` VARCHAR(500) NULL DEFAULT NULL, `cnt` INT(11) NULL DEFAULT NULL, `request` TEXT NULL, `input` TEXT NULL, `data_update` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE INDEX `ip` (`ip`) ) COMMENT='ะะฐะฝะดะธะดะฐัั ะดะปั ะฑะปะพะบะธัะพะฒะบะธ' COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=1;
CREATE TABLE `wp_visiters_bot_blocked` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `ip` VARCHAR(300) NOT NULL, `data_update` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE INDEX `ip` (`ip`) ) COMMENT='ะกะฟะธัะพะบ ัะถะต ะทะฐะฑะปะพะบะธัะพะฒะฐะฝะฝัั ' COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=59;
CREATE TABLE `wp_visiters_bot_history` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `ip` VARCHAR(300) NULL DEFAULT NULL, `browser` VARCHAR(500) NULL DEFAULT NULL, `cnt` INT(11) NULL DEFAULT NULL, `data_update` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `data_add` DATETIME NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE INDEX `ip` (`ip`) ) COMMENT='ะััะพัะธั ะฒัะตั ะทะฐะฟัะพัะพะฒ ะดะปั ะดะตะฑะฐะณะฐ' COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=1;
- เชเชพเชฒเซ เชเช เชซเชพเชเชฒ เชฌเชจเชพเชตเซเช เชเซเชฎเชพเช เชเชชเชฃเซ เชเซเชก เชฎเซเชเซเชถเซเช. เชเซเชก เช
เชตเชฐเซเชงเชฟเชค เชเชฎเซเชฆเชตเชพเชฐ เชเซเชทเซเชเชเซเชฎเชพเช เชฐเซเชเซเชฐเซเชก เชเชฐเชถเซ เช
เชจเซ เชกเชฟเชฌเชเซเชเช เชฎเชพเชเซ เชเชคเชฟเชนเชพเชธ เชฐเชพเชเชถเซ.
IP เชธเชฐเชจเชพเชฎเชพเช เชฐเซเชเซเชฐเซเชก เชเชฐเชตเชพ เชฎเชพเชเซ เชซเชพเชเชฒ เชเซเชก
<?php if (!defined('ABSPATH')) { return; } global $wpdb; /** * ะะตัะฝัั ะบะพะฝะบัะตัะฝัะน IP ะฐะดัะตั ะฟะพัะตัะธัะตะปั * @return boolean */ function coderun_get_user_ip() { $client_ip = ''; $address_headers = array( 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR', ); foreach ($address_headers as $header) { if (array_key_exists($header, $_SERVER)) { $address_chain = explode(',', $_SERVER[$header]); $client_ip = trim($address_chain[0]); break; } } if (!$client_ip) { return ''; } if ('0.0.0.0' === $client_ip || '::' === $client_ip || $client_ip == 'unknown') { return ''; } return $client_ip; } $ip = esc_sql(coderun_get_user_ip()); // IP ะฐะดัะตั ะฟะพัะตัะธัะตะปั if (empty($ip)) {// ะะตั IP, ะฝั ะธ ะธะดะธัะต ะปะตัะพะผ... header('Content-type: application/json;'); die('Big big bolt....'); } $browser = esc_sql($_SERVER['HTTP_USER_AGENT']); //ะะฐะฝะฝัะต ะดะปั ะฐะฝะฐะปะธะทะฐ ะฑัะฐัะทะตัะฐ $request = esc_sql(wp_json_encode($_REQUEST)); //ะะพัะปะตะดะฝะธะน ะทะฐะฟัะพั ะบะพัะพััะน ะฑัะป ะบ ัะฐะนัั $input = esc_sql(file_get_contents('php://input')); //ะขะตะปะพ ะทะฐะฟัะพัะฐ, ะตัะปะธ ะฑัะปะพ $cnt = 1; //ะะฐะฟัะพั ะฒ ะพัะฝะพะฒะฝัั ัะฐะฑะปะธัั ั ะฒัะตะผะตะฝะฝัะผะธ ะบะพะฝะดะธะดะฐัะฐะผะธ ะฝะฐ ะฑะปะพะบะธัะพะฒะบั $query = <<<EOT INSERT INTO wp_visiters_bot (`ip`,`browser`,`cnt`,`request`,`input`) VALUES ('{$ip}','{$browser}','{$cnt}','{$request}','$input') ON DUPLICATE KEY UPDATE cnt=cnt+1,request=VALUES(request),input=VALUES(input),browser=VALUES(browser) EOT; //ะะฐะฟัะพั ะดะปั ะธััะพัะธะธ $query2 = <<<EOT INSERT INTO wp_visiters_bot_history (`ip`,`browser`,`cnt`) VALUES ('{$ip}','{$browser}','{$cnt}') ON DUPLICATE KEY UPDATE cnt=cnt+1,browser=VALUES(browser) EOT; $wpdb->query($query); $wpdb->query($query2);
เชเซเชกเชจเซ เชธเชพเชฐ เช เชเซ เชเซ เชฎเซเชฒเชพเชเชพเชคเซเชจเซเช IP เชธเชฐเชจเชพเชฎเซเช เชฎเซเชณเชตเชตเซเช เช เชจเซ เชคเซเชจเซ เชเซเชฌเชฒเชฎเชพเช เชฒเชเชตเซเช. เชเซ ip เชชเชนเซเชฒเซเชฅเซ เช เชเซเชทเซเชเชเชฎเชพเช เชเซ, เชคเซ cnt เชซเซเชฒเซเชก เชตเชงเชพเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ (เชธเชพเชเช เชชเชฐ เชตเชฟเชจเชเชคเซเชเชจเซ เชธเชเชเซเชฏเชพ)
- เชนเชตเซ เชกเชฐเชพเชฎเชฃเซ เชตเชพเชค... เชนเชตเซ เชคเซเช เชฎเชจเซ เชฎเชพเชฐเซ เชเซเชฐเชฟเชฏเชพเช เชฎเชพเชเซ เชฌเชพเชณเซ เชจเชพเชเชถเซ :)
เชธเชพเชเช เชชเชฐเชจเซ เชฆเชฐเซเช เชตเชฟเชจเชเชคเซเชจเซ เชฐเซเชเซเชฐเซเชก เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชฎเซ เชซเชพเชเชฒ เชเซเชกเชจเซ เชฎเซเชเซเชฏ WordPress เชซเชพเชเชฒ - wp-load.php เชธเชพเชฅเซ เชเซเชกเซเช เชเซเช. เชนเชพ, เช เชฎเซ เชเชฐเซเชจเชฒ เชซเชพเชเชฒ เชฌเชฆเชฒเซเช เชเซเช เช เชจเซ เชตเซเชถเซเชตเชฟเช เชเชฒ $wpdb เชชเชนเซเชฒเชพเชฅเซ เช เชธเซเชคเชฟเชคเซเชตเชฎเชพเช เชเซ เชคเซ เชชเชเซ เชเซเชเซเชเชธ
เชคเซเชฅเซ, เชนเชตเซ เชเชชเชฃเซ เชเซเช เชถเชเซเช เชเซเช เชเซ เช เช เชฅเชตเชพ เชคเซ IP เชธเชฐเชจเชพเชฎเซเช เชเชชเชฃเชพ เชเซเชทเซเชเชเชฎเชพเช เชเซเชเชฒเซ เชตเชพเชฐ เชเชฟเชนเซเชจเชฟเชค เชฅเชฏเซเชฒ เชเซ เช เชจเซ เชเซเชซเซเชจเชพ เชฎเช เชธเชพเชฅเซ เชเชชเชฃเซ เชเชฟเชคเซเชฐเชจเซ เชธเชฎเชเชตเชพ เชฎเชพเชเซ เชฆเชฐ 5 เชฎเชฟเชจเชฟเชเซ เชเช เชตเชพเชฐ เชคเซเชฏเชพเช เชเซเชเช เชเซเช.
เชชเชเซ เชซเชเซเชค "เชนเชพเชจเชฟเชเชพเชฐเช" IP เชจเซ เชจเชเชฒ เชเชฐเซ, .htaccess เชซเชพเชเชฒ เชเซเชฒเซ เช
เชจเซ เชคเซเชจเซ เชซเชพเชเชฒเชจเชพ เช
เชเชคเชฎเชพเช เชเชฎเซเชฐเซ.
Order allow,deny
Allow from all
# start_auto_deny_list
Deny from 94.242.55.248
# end_auto_deny_list
เชฌเชธ, เชนเชตเซ 94.242.55.248 - เชธเชพเชเชเชจเซ เชเชเซเชธเซเชธ เชงเชฐเชพเชตเชคเซเช เชจเชฅเซ เช เชจเซ เชกเซเชเชพเชฌเซเช เชชเชฐ เชฒเซเชก เชเชจเชฐเซเช เชเชฐเชคเซเช เชจเชฅเซ
เชชเชฐเชเชคเซ เชฆเชฐเซเช เชตเชเชคเซ เช เชฐเซเชคเซ เชนเชพเชฅ เชตเชกเซ เชจเชเชฒ เชเชฐเชตเซ เช เชฌเชนเซ เชจเซเชฏเชพเชฏเซ เชเชพเชฐเซเชฏ เชจเชฅเซ เช เชจเซ เช เชเชชเชฐเชพเชเชค, เชเซเชกเชจเซ เชนเซเชคเซ เชธเซเชตเชพเชฏเชคเซเชค เชฌเชจเชตเชพเชจเซ เชนเชคเซ.
เชเชพเชฒเซ เชเช เชซเชพเชเชฒ เชเชฎเซเชฐเซเช เชเซ เชฆเชฐ 30 เชฎเชฟเชจเชฟเชเซ CRON เชฆเซเชตเชพเชฐเชพ เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ:
เชซเชพเชเชฒ เชเซเชก .htaccess เชฎเชพเช เชซเซเชฐเชซเชพเชฐ เชเชฐเซ เชฐเชนเซเชฏเซ เชเซ
<?php
/**
* ะคะฐะนะป ะฐะฒัะพะผะฐัะธัะตัะบะพะณะพ ะทะฐะดะฐะฝะธั ะฑะปะพะบะธัะพะฒะพะบ ะฟะพ IP ะฐะดัะตัั
* ะะพะปะถะตะฝ ะทะฐะฟัะฐัะธะฒะฐัััั ัะตัะตะท CRON
*/
if (empty($_REQUEST['key'])) {
die('Hello');
}
require('wp-load.php');
global $wpdb;
$limit_cnt = 70; //ะะธะผะธั ะทะฐะฟัะพัะพะฒ ะฟะพ ะบะพัะพััะผ ะพัะฑะธัะฐัั
$deny_table = $wpdb->get_results("SELECT * FROM wp_visiters_bot WHERE cnt>{$limit_cnt}");
$new_blocked = [];
$exclude_ip = [
'87.236.16.70'//ะฐะดัะตั ั
ะพััะธะฝะณะฐ
];
foreach ($deny_table as $result) {
if (in_array($result->ip, $exclude_ip)) {
continue;
}
$wpdb->insert('wp_visiters_bot_blocked', ['ip' => $result->ip], ['%s']);
}
$deny_table_blocked = $wpdb->get_results("SELECT * FROM wp_visiters_bot_blocked");
foreach ($deny_table_blocked as $blocked) {
$new_blocked[] = $blocked->ip;
}
//ะัะธััะบะฐ ัะฐะฑะปะธัั
$wpdb->query("DELETE FROM wp_visiters_bot");
//echo '<pre>';print_r($new_blocked);echo '</pre>';
$file = '.htaccess';
$start_searche_tag = 'start_auto_deny_list';
$end_searche_tag = 'end_auto_deny_list';
$handle = @fopen($file, "r");
if ($handle) {
$replace_string = '';//ะขะตัั ะดะปั ะฒััะฐะฒะบะธ ะฒ ัะฐะนะป .htaccess
$target_content = false; //ะคะปะฐะณ ะฝัะถะฝะพะณะพ ะฝะฐะผ ััะฐััะบะฐ ะบะพะดะฐ
while (($buffer = fgets($handle, 4096)) !== false) {
if (stripos($buffer, 'start_auto_deny_list') !== false) {
$target_content = true;
continue;
}
if (stripos($buffer, 'end_auto_deny_list') !== false) {
$target_content = false;
continue;
}
if ($target_content) {
$replace_string .= $buffer;
}
}
if (!feof($handle)) {
echo "ะัะธะฑะบะฐ: fgets() ะฝะตะพะถะธะดะฐะฝะฝะพ ะฟะพัะตัะฟะตะป ะฝะตัะดะฐััn";
}
fclose($handle);
}
//ะขะตะบััะธะน ัะฐะนะป .htaccess
$content = file_get_contents($file);
$content = str_replace($replace_string, '', $content);
//ะัะธัะฐะตะผ ะฒัะต ะฑะปะพะบะธัะพะฒะบะธ ะฒ ัะฐะนะปะต .htaccess
file_put_contents($file, $content);
//ะะฐะฟะธัั ะฝะพะฒัั
ะฑะปะพะบะธัะพะฒะพะบ
$str = "# {$start_searche_tag}" . PHP_EOL;
foreach ($new_blocked as $key => $value) {
$str .= "Deny from {$value}" . PHP_EOL;
}
file_put_contents($file, str_replace("# {$start_searche_tag}", $str, file_get_contents($file)));
เชซเชพเชเชฒ เชเซเชก เชเชเชฆเชฎ เชธเชฐเชณ เช
เชจเซ เชเชฆเชฟเชฎ เชเซ เช
เชจเซ เชคเซเชจเซ เชฎเซเชเซเชฏ เชตเชฟเชเชพเชฐ เชเชฎเซเชฆเชตเชพเชฐเซเชจเซ เชฌเซเชฒเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชฒเซเชตเชพเชจเซ เชเซ เช
เชจเซ เชเชฟเชชเซเชชเชฃเซเช เชตเชเซเชเซ .htaccess เชซเชพเชเชฒเชฎเชพเช เชฌเซเชฒเซเชเชฟเชเช เชจเชฟเชฏเชฎเซ เชฆเชพเชเชฒ เชเชฐเชตเชพเชจเซ เชเซ.
# start_auto_deny_list เช
เชจเซ # end_auto_deny_list
เชนเชตเซ "เชจเซเชเชธเชพเชจเชเชพเชฐเช" IPs เชเชพเชคเซ เช เช เชตเชฐเซเชงเชฟเชค เชเซ, เช เชจเซ .htaccess เชซเชพเชเชฒ เชเชเชเช เชเชจเชพ เชเซเชตเซ เชฆเซเชเชพเชฏ เชเซ:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Order allow,deny
Allow from all
# start_auto_deny_list
Deny from 94.242.55.248
Deny from 207.46.13.122
Deny from 66.249.64.164
Deny from 54.209.162.70
Deny from 40.77.167.86
Deny from 54.146.43.69
Deny from 207.46.13.168
....... ะฝะธะถะต ะดััะณะธะต ะฐะดัะตัะฐ
# end_auto_deny_list
เชชเชฐเชฟเชฃเชพเชฎเซ, เช เชเซเชก เชเชพเชฎ เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซ เชชเชเซ, เชคเชฎเซ เชนเซเชธเซเชเชฟเชเช เชชเซเชจเชฒเชฎเชพเช เชชเชฐเชฟเชฃเชพเชฎ เชเซเช เชถเชเซ เชเซ:
เชชเซเชเชธ: เชธเชพเชฎเชเซเชฐเซ เชฒเซเชเชเชจเซ เชเซ, เชเซ เชเซ เชฎเซเช เชคเซเชจเซ เชญเชพเช เชฎเชพเชฐเซ เชตเซเชฌเชธเชพเชเช เชชเชฐ เชชเซเชฐเชเชพเชถเชฟเชค เชเชฐเซเชฏเซ เชเซ, เชฎเชจเซ เชนเซเชฌเซเชฐเซ เชชเชฐ เชตเชงเซ เชตเชฟเชธเซเชคเซเชค เชธเชเชธเซเชเชฐเชฃ เชฎเชณเซเชฏเซเช.
เชธเซเชฐเซเชธ: www.habr.com