ΠΠΎΠ±Π°Ρ Π΄Π΅Π½! ΠΠΎ Π½Π°ΠΏΠΈΡΠΎΡ ΡΠ΅ Π²ΠΈ ΠΊΠ°ΠΆΠ°ΠΌ ΠΊΠ°ΠΊΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π½ΠΈΠΎΡ Ρ
ΠΎΡΡΠΈΠ½Π³ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠ°ΡΠ°Ρ IP Π°Π΄ΡΠ΅ΡΠΈ ΠΊΠΎΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π°Ρ ΠΏΡΠ΅ΠΊΡΠΌΠ΅ΡΠ½ΠΎ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΠΈ ΠΏΠΎΡΠΎΠ° Π΄Π° Π³ΠΈ Π±Π»ΠΎΠΊΠΈΡΠ°Π°Ρ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π°Π»Π°ΡΠΊΠΈ Π·Π° Ρ
ΠΎΡΡΠΈΡΠ°ΡΠ΅, ΡΠ΅ ΠΈΠΌΠ° βΠΌΠ°Π»ΠΊΡβ php ΠΊΠΎΠ΄, Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ»ΠΈΠΊΠΈ ΠΎΠ΄ Π΅ΠΊΡΠ°Π½ΠΎΡ.
ΠΠ»Π΅Π·Π½ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ:
- ΠΠ΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ° ΠΊΡΠ΅ΠΈΡΠ°Π½Π° Π½Π° CMS WordPress
- Π₯ΠΎΡΡΠΈΠ½Π³ 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 and # 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
ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, ΠΎΡΠΊΠ°ΠΊΠΎ ΠΎΠ²ΠΎΡ ΠΊΠΎΠ΄ ΡΠ΅ ΠΏΠΎΡΠ½Π΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΎΡ Π²ΠΎ ΠΏΠ°Π½Π΅Π»ΠΎΡ Π·Π° Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅:
Π.Π‘.: ΠΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΎΡ Π΅ Π½Π° Π°Π²ΡΠΎΡΠΎΡ, ΠΈΠ°ΠΊΠΎ Π΄Π΅Π» ΠΎΠ΄ Π½Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π²ΠΈΠ² Π½Π° ΠΌΠΎΡΠ°ΡΠ° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ°, Π½Π° Π₯Π°Π±ΡΠ΅ Π΄ΠΎΠ±ΠΈΠ² ΠΏΠΎΠΏΡΠΎΡΠΈΡΠ΅Π½Π° Π²Π΅ΡΠ·ΠΈΡΠ°.
ΠΠ·Π²ΠΎΡ: www.habr.com