ΠΠΎΠ±ΡΡ Π΄Π΅Π½! Π ΡΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ Ρ
ΠΎΡΡΠΈΠ½Π³ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ»ΠΎΠ²ΡΡ IP Π°Π΄ΡΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ ΠΏΡΠ΅ΠΊΠΎΠΌΠ΅ΡΠ½ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΡΠ° ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° Π³ΠΈ Π±Π»ΠΎΠΊΠΈΡΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Ρ
ΠΎΡΡΠΈΠ½Π³ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΡΠ΅ ΠΈΠΌΠ° βΠΌΠ°Π»ΠΊΠΎβ php ΠΊΠΎΠ΄, Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΅ΠΊΡΠ°Π½Π½ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ.
ΠΡ
ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ:
- Π£Π΅Π±ΡΠ°ΠΉΡ, ΡΡΠ·Π΄Π°Π΄Π΅Π½ Π½Π° CMS WordPress
- Hosting Beget (ΡΠΎΠ²Π° Π½Π΅ Π΅ ΡΠ΅ΠΊΠ»Π°ΠΌΠ°, Π½ΠΎ Π΅ΠΊΡΠ°Π½Π½ΠΈΡΠ΅ ΡΠ½ΠΈΠΌΠΊΠΈ Π½Π° Π°Π΄ΠΌΠΈΠ½ ΠΏΠ°Π½Π΅Π»Π° ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΎΡ ΡΠΎΠ·ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ Ρ ΠΎΡΡΠΈΠ½Π³ Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ)
- Π‘Π°ΠΉΡΡΡ WordPress ΡΡΠ°ΡΡΠΈΡΠ° Π½ΡΠΊΡΠ΄Π΅ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° 2000 Π³. ΠΈ ΠΈΠΌΠ° Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ
- PHP Π²Π΅ΡΡΠΈΡ 7.2
- WP ΠΈΠΌΠ° Π½Π°ΠΉ-Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ
- ΠΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠ°ΠΉΡΡΡ Π·Π°ΠΏΠΎΡΠ½Π° Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ° Π²ΠΈΡΠΎΠΊΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° MySQL ΡΠΏΠΎΡΠ΅Π΄ Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° Ρ ΠΎΡΡΠΈΠ½Π³. ΠΡΠ΅ΠΊΠΈ Π΄Π΅Π½ ΡΠ°Π·ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π°Π΄Π²ΠΈΡΠ°Π²Π° 120% ΠΎΡ Π½ΠΎΡΠΌΠ°ΡΠ° Π·Π° ΡΠΌΠ΅ΡΠΊΠ°
- Π‘ΠΏΠΎΡΠ΅Π΄ Yandex. Π‘Π°ΠΉΡΡΡ Π½Π° Metrica ΡΠ΅ ΠΏΠΎΡΠ΅ΡΠ°Π²Π° ΠΎΡ 100-200 Π΄ΡΡΠΈ Π½Π° Π΄Π΅Π½
ΠΠ° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ, ΡΠΎΠ²Π° Π±Π΅ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ:
- Π’Π°Π±Π»ΠΈΡΠΈΡΠ΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π±ΡΡ Π° ΠΈΠ·ΡΠΈΡΡΠ΅Π½ΠΈ ΠΎΡ Π½Π°ΡΡΡΠΏΠ°Π½ΠΈΡ Π±ΠΎΠΊΠ»ΡΠΊ
- ΠΠ΅Π½ΡΠΆΠ½ΠΈΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ Π±ΡΡ Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΈ, ΡΠ΅ΠΊΡΠΈΠΈ ΠΎΡ ΠΎΡΡΠ°ΡΡΠ» ΠΊΠΎΠ΄ Π±ΡΡ Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠΈ
Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π±ΠΈΡ ΠΈΡΠΊΠ°Π» Π΄Π° ΠΎΠ±ΡΡΠ½Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΊΡΠ°, ΡΠ΅ Π±ΡΡ Π° ΠΈΠ·ΠΏΡΠΎΠ±Π²Π°Π½ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ (ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ Π·Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅), Π±ΡΡ Π° Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ - Π½ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ ΠΎΡ 120% ΠΎΡ Π΅Π΄ΠΈΠ½ ΡΠ°ΠΉΡ Π±Π΅ΡΠ΅ Π½Π΅ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΎ Π΄Π° ΡΠ°ΡΡΠ΅.
ΠΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° Ρ ΠΎΡΡΠΈΠ½Π³ Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ
ΠΠ°ΠΉ-ΠΎΡΠ³ΠΎΡΠ΅ Π΅ Π²ΡΠΏΡΠΎΡΠ½ΠΈΡΡ ΡΠ°ΠΉΡ, ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π΄ΠΎΠ»Ρ ΡΠ° Π΄ΡΡΠ³ΠΈ ΡΠ°ΠΉΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ ΡΡΡΠΈΡ cms ΠΈ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ ΡΡΡΠΈΡ ΡΡΠ°ΡΠΈΠΊ, Π½ΠΎ ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅.
ΠΠ½Π°Π»ΠΈΠ·
- ΠΡΡ Π° Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠΈ Ρ ΠΎΠΏΡΠΈΠΈ Π·Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ Π±ΡΡ Π° ΠΈΠ·Π²ΡΡΡΠ΅Π½ΠΈ Π² ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅Π΄ΠΌΠΈΡΠΈ (Π·Π° ΡΠ°ΡΡΠΈΠ΅, ΠΏΡΠ΅Π· ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ Ρ ΠΎΡΡΠΈΠ½Π³ΡΡ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ ΠΌΠΈ ΠΏΠΈΡΠ°, ΡΠ΅ ΡΡΠΌ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π·Π»Π΅ ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΊΡΡΠ½Π°Ρ)
- ΠΠΌΠ°ΡΠ΅ Π°Π½Π°Π»ΠΈΠ· ΠΈ ΡΡΡΡΠ΅Π½Π΅ Π½Π° Π±Π°Π²Π½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΈ ΡΠΈΠΏΡΡ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Π±ΡΡ Π° Π»Π΅ΠΊΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΈ
- ΠΠ° Π°Π½Π°Π»ΠΈΠ· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ Π²Π³ΡΠ°Π΄Π΅Π½Π°ΡΠ° AWStats (ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΡΡ ΠΏΠΎΠΌΠΎΠ³Π½Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΠΈ Π½Π°ΠΉ-Π»ΠΎΡΠΈΡΡ IP Π°Π΄ΡΠ΅Ρ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΎΠ±Π΅ΠΌΠ° Π½Π° ΡΡΠ°ΡΠΈΠΊΠ°
- ΠΠ΅ΡΡΠΈΠΊΠ° β ΠΌΠ΅ΡΡΠΈΠΊΠ°ΡΠ° Π΄Π°Π²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠ°ΠΌΠΎ Π·Π° Ρ ΠΎΡΠ°, Π½Π΅ ΠΈ Π·Π° Π±ΠΎΡΠΎΠ²Π΅
- ΠΠΌΠ° ΠΎΠΏΠΈΡΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ Π·Π° WP, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Ρ ΠΈ Π±Π»ΠΎΠΊΠΈΡΠ°Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈ Π΄ΠΎΡΠΈ ΠΏΠΎ Π΄ΡΡΠΆΠ°Π²Π° Π½Π° ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ
- ΠΠ°ΠΏΡΠ»Π½ΠΎ ΡΠ°Π΄ΠΈΠΊΠ°Π»Π΅Π½ Π½Π°ΡΠΈΠ½ ΡΠ΅ ΠΎΠΊΠ°Π·Π° Π·Π°ΡΠ²Π°ΡΡΠ½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΉΡΠ° Π·Π° Π΅Π΄ΠΈΠ½ Π΄Π΅Π½ Ρ Π±Π΅Π»Π΅ΠΆΠΊΠ°ΡΠ° βΠΠΈΠ΅ ΡΠΌΠ΅ Π² ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°β - ΡΠΎΠ²Π° ΡΡΡΠΎ Π±Π΅ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈΡ ΠΏΠ»ΡΠ³ΠΈΠ½. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΎΡΠ°ΠΊΠ²Π°ΠΌΠ΅ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π΄Π° ΡΠΏΠ°Π΄Π½Π΅, Π½ΠΎ Π½Π΅ Π΄ΠΎ Π½ΡΠ»Π΅Π²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Π½Π° WP ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π½Π° ΠΊΡΠΊΠΈΡΠΊΠΈ ΠΈ ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈΡΠ΅ Π·Π°ΠΏΠΎΡΠ²Π°Ρ ΡΠ²ΠΎΡΡΠ° Π΄Π΅ΠΉΠ½ΠΎΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ βΠΊΡΠΊΠΈΡΠΊΠ°β ΠΈ ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ βΠΊΡΠΊΠΈΡΠΊΠ°ΡΠ°β, Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΊΡΠΌ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠ³Π°Ρ Π²Π΅ΡΠ΅ ΡΠ° Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ
ΠΠ΄Π΅Ρ
- ΠΠ·ΡΠΈΡΠ»Π΅ΡΠ΅ IP Π°Π΄ΡΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ°Π²ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΠΊΡΠ°ΡΡΠΊ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅.
- ΠΠ°ΠΏΠΈΡΠ΅ΡΠ΅ Π±ΡΠΎΡ Π½Π° ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Π½Π° ΡΠ°ΠΉΡΠ°
- ΠΠ»ΠΎΠΊΠΈΡΠ°ΠΉΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΡΠ°ΠΉΡΠ° Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π±ΡΠΎΡ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΡ
- ΠΠ»ΠΎΠΊΠΈΡΠ°ΠΉΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π·Π°ΠΏΠΈΡΠ° βΠΡΠΊΠ°Π· ΠΎΡβ Π²ΡΠ² ΡΠ°ΠΉΠ»Π° .htaccess
- ΠΠ΅ ΠΎΠ±ΠΌΠΈΡΠ»ΡΡ Π΄ΡΡΠ³ΠΈ ΠΎΠΏΡΠΈΠΈ, ΠΊΠ°ΡΠΎ 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 - Π½ΡΠΌΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ°ΠΉΡΠ° ΠΈ Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ
ΠΠΎ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠΊΠ° ΠΊΠ°ΡΠΎ ΡΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π½Π° Π·Π°Π΄Π°ΡΠ° ΠΈ ΠΎΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΊΠΎΠ΄ΡΡ Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π° Π±ΡΠ΄Π΅ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ΅Π½
ΠΠ΅ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ°ΠΉΠ», ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΡΠ΅Π· CRON Π½Π° Π²ΡΠ΅ΠΊΠΈ 30 ΠΌΠΈΠ½ΡΡΠΈ:
Π€Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ΄, ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Ρ .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
Π‘Π΅Π³Π° βΠ²ΡΠ΅Π΄Π½ΠΈΡΠ΅β IP Π°Π΄ΡΠ΅ΡΠΈ ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠ°Ρ ΡΠ°ΠΌΠΈ ΠΈ ΡΠ°ΠΉΠ»ΡΡ .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
Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π°, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠΎΠ·ΠΈ ΠΊΠΎΠ΄ Π·Π°ΠΏΠΎΡΠ½Π΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° Π² Ρ ΠΎΡΡΠΈΠ½Π³ ΠΏΠ°Π½Π΅Π»Π°:
PS: ΠΠ°ΡΠ΅ΡΠΈΠ°Π»ΡΡ Π΅ Π½Π° Π°Π²ΡΠΎΡΠ°, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Ρ
ΡΠ°ΡΡ ΠΎΡ Π½Π΅Π³ΠΎ Π½Π° ΠΌΠΎΡ ΡΠ΅Π±ΡΠ°ΠΉΡ, ΠΈΠΌΠ°ΠΌ ΠΏΠΎ-ΡΠ°Π·ΡΠΈΡΠ΅Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° Π₯Π°Π±ΡΠ΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com