рд╣рдо рд╕рдВрднрд╛рд╡рд┐рдд "рдмреБрд░рд╛рдИ" рдмреЙрдЯреНрд╕ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдИрдкреА рджреНрд╡рд╛рд░рд╛ рдЙрдиреНрд╣реЗрдВ рдмреНрд▓реЙрдХ рдХрд░рддреЗ рд╣реИрдВ



рд╢реБрдн рджрд┐рди рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╕рд╛рдзрд╛рд░рдг рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╡реЗ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рдкрдХрдбрд╝реЗрдВ рдЬреЛ рд╕рд╛рдЗрдЯ рдкрд░ рдЕрддреНрдпрдзрд┐рдХ рд▓реЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреНрд▓реЙрдХ рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╣рд╛рдВ "рдереЛрдбрд╝рд╛" php рдХреЛрдб, рдХреБрдЫ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╣реЛрдВрдЧреЗред

рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛:

  1. рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реАрдПрдордПрд╕ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдкрд░ рдмрдирд╛рдИ рдЧрдИ
  2. рд╣реЛрд╕реНрдЯрд┐рдВрдЧ Beget (рдпрд╣ рдПрдХ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЗрд╕ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд╣реЛрдВрдЧреЗ)
  3. рд╡рд░реНрдбрдкреНрд░реЗрд╕ рд╕рд╛рдЗрдЯ 2000 рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХрд╣реАрдВ рд▓реЙрдиреНрдЪ рд╣реБрдИ рдФрд░ рдЗрд╕рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд▓реЗрдЦ рдФрд░ рд╕рд╛рдордЧреНрд░реА рд╣реИрдВред
  4. PHP рд╕рдВрд╕реНрдХрд░рдг 7.2
  5. WP рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ
  6. рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЕрдм рд╕рд╛рдЗрдЯ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдЕрдиреБрд╕рд╛рд░ MySQL рдкрд░ рдПрдХ рдЙрдЪреНрдЪ рднрд╛рд░ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рд╣рд░ рджрд┐рди, рдпрд╣ рдорд╛рди рдкреНрд░рддрд┐ рдЦрд╛рддрд╛ 120% рд╕реЗ рдЕрдзрд┐рдХ рдерд╛
  7. рдпрд╛рдВрдбреЗрдХреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ред рдПрдХ рджрд┐рди рдореЗрдВ 100-200 рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдореАрдЯреНрд░рд┐рдХ рд╕рд╛рдЗрдЯ рдХрд╛ рджреМрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

  1. рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬрдорд╛ рдХрдЪрд░реЗ рдХреЛ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
  2. рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреНрд▓рдЧ-рдЗрди рдЕрдХреНрд╖рдо рд╣реИрдВ, рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдХреЗ рдЕрдиреБрднрд╛рдЧ рд╣рдЯрд╛ рджрд┐рдП рдЧрдП рд╣реИрдВ

рдЙрд╕реА рд╕рдордп, рдореИрдВ рдХреИрд╢рд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдкреЛрдВ (рдХреИрд╢рд┐рдВрдЧ рдкреНрд▓рдЧрдЗрдиреНрд╕) рдкрд░ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рд╣рдордиреЗ рдЕрд╡рд▓реЛрдХрди рдХрд┐рдП - рд▓реЗрдХрд┐рди рдПрдХ рд╕рд╛рдЗрдЯ рд╕реЗ 120% рдХрд╛ рд▓реЛрдб рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдерд╛ рдФрд░ рдХреЗрд╡рд▓ рдмрдврд╝ рд╕рдХрддрд╛ рдерд╛ред

рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдЕрдиреБрдорд╛рдирд┐рдд рднрд╛рд░ рдХреИрд╕реЗ рджреЗрдЦрд╛ рдЧрдпрд╛


рд╢реАрд░реНрд╖ рдореЗрдВ, рдЕрдиреНрдп рд╕рд╛рдЗрдЯ рдХреЗ рдареАрдХ рдиреАрдЪреЗ рд╡рд╛рд▓реА рд╕рд╛рдЗрдЯ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдорд╛рди cms рдФрд░ рд╕рдорд╛рди рдЯреНрд░реИрдлрд╝рд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд▓реЛрдб рдмрдирд╛рдПрдБред

рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

  • рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рдЧрдП рдереЗ, рдХрдИ рд╣рдлреНрддреЛрдВ рддрдХ рдЕрд╡рд▓реЛрдХрди рдХрд┐рдП рдЧрдП рдереЗ (рдЗрд╕ рджреМрд░рд╛рди рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХрд╛ рд▓рд╛рдн рдореИрдВрдиреЗ рдХрднреА рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдХрд┐ рдореИрдВ рдЗрддрдирд╛ рдмреБрд░рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░ рджреЗрдВ)
  • рдзреАрдореА рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдЦреЛрдЬ рдереА, рдлрд┐рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рдХрд╛рд░ рдереЛрдбрд╝рд╛ рдмрджрд▓ рдЧрдпрд╛ рдерд╛
  • рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд AWStats рдХреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рд╡реИрд╕реЗ, рдпрд╣ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╡реЙрд▓реНрдпреВрдо рджреНрд╡рд╛рд░рд╛ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдЖрдИрдкреА рдкрддреЗ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ
  • рдореАрдЯреНрд░рд┐рдХ - рдореАрдЯреНрд░рд┐рдХ рдХреЗрд╡рд▓ рд▓реЛрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИ, рди рдХрд┐ рдмреЙрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
  • WP рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдЖрдЧрдВрддреБрдХреЛрдВ рдХреЛ рд╕реНрдерд╛рди рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдпреЛрдЬрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рднреА рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ
  • "рд╣рдо рд░рдЦрд░рдЦрд╛рд╡ рдкрд░ рд╣реИрдВ" рдХреЗ рдирд┐рд╢рд╛рди рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдЯ рдХреЛ рдПрдХ рджрд┐рди рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрдЯреНрдЯрд░рдкрдВрдереА рддрд░реАрдХрд╛ рдирд┐рдХрд▓рд╛ - рдпрд╣ рдкреНрд░рд╕рд┐рджреНрдз рдкреНрд▓рдЧ-рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рд▓реЛрдб рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди 0-рдмрд╛рдПрдВ рдорд╛рдиреЛрдВ рдХреА рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ WP рдХреА рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рд╣реБрдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИ рдФрд░ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЕрдкрдиреА рдЧрддрд┐рд╡рд┐рдзрд┐ рддрдм рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ "рд╣реБрдХ" рд╣реЛрддрд╛ рд╣реИ, рдФрд░ "рд╣реБрдХ" рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдкреНрд░рд╢реНрди рдкрд╣рд▓реЗ рд╣реА рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд┐рдЪрд╛рд░

  1. рдЖрдИрдкреА тАЛтАЛрдкрддреЗ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ рдЬреЛ рдереЛрдбрд╝реЗ рд╕рдордп рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВред
  2. рд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдиреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░реЗрдВ
  3. рд╕рд╛рдЗрдЯ рдкрд░ рд╣рд┐рдЯ рдмреНрд▓реЙрдХ рдХреА рдкрд╣реБрдВрдЪ рдХреЗ рдЖрдзрд╛рд░ рдкрд░
  4. .Htaccess рдлрд╝рд╛рдЗрд▓ рдореЗрдВ "рдкреНрд░рд╡реЗрд╢ рд╕реЗ рдЗрдирдХрд╛рд░" рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреНрд▓реЙрдХ рдХрд░реЗрдВ
  5. рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк, рдЬреИрд╕реЗ рдмрд┐рдирд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдЖрдИрдкрд╛рдЗрдмрд▓реНрд╕ рдФрд░ рдирд┐рдпрдиреЗрдХреНрд╕ рдХреЗ рдирд┐рдпрдо, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ

рдПрдХ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреИрд╕реЗ рдХрд┐ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ ...

  • рд╣рдо рдбреЗрдЯрд╛ рд╕рдВрдЪрдп рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ

    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; 
  • рдПрдХ рдлрд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдХреЛрдб рдбрд╛рд▓реЗрдВрдЧреЗред рдХреЛрдб рд▓реЙрдХ рдХрд░рдиреЗ рдФрд░ рдбрд┐рдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрддрд┐рд╣рд╛рд╕ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдореНрдореАрджрд╡рд╛рд░реЛрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред

    рдЖрдИрдкреА тАЛтАЛрдкрддреЗ рдХреА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдХреЛрдб
     <?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 рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╣реИ, рддреЛ cnt рдлрд╝реАрд▓реНрдб рдмрдврд╝рд╛ рджреА рдЬрд╛рдПрдЧреА (рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛)
  • рдЕрдм рдпрд╣ рдбрд░рд╛рд╡рдирд╛ рд╣реИ ... рдЕрдм рд╡реЗ рдореБрдЭреЗ рдореЗрд░реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд▓рд╛ рджреЗрдВрдЧреЗ :)
    рд╕рд╛рдЗрдЯ рдкрд░ рд╣рд░ рдХреЙрд▓ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдлрд╛рдЗрд▓ рдХреЛрдб рдХреЛ рдореБрдЦреНрдп рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдлрд╝рд╛рдЗрд▓ - wp-load.php рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рдВ, рд╣рдо $ wpdb рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХрд░реНрдиреЗрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдареАрдХ рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ

рддреЛ, рдЕрдм рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдпрд╛ рд╡рд╣ рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ рдХрд┐рддрдиреА рдмрд╛рд░ рд╣рдорд╛рд░реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдиреЛрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрдХ рдХрдк рдХреЙрдлреА рдХреЗ рд╕рд╛рде рд╣рдо рд╣рд░ 5 рдорд┐рдирдЯ рдореЗрдВ рддрд╕реНрд╡реАрд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред



рдлрд┐рд░ рдмрд╕ "рд╣рд╛рдирд┐рдХрд╛рд░рдХ" рдЖрдИрдкреА рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ, .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

рдЕрдм "рд╣рд╛рдирд┐рдХрд╛рд░рдХ" рдЖрдИрдкреА рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рдЕрд╡рд░реБрджреНрдз рд╣реИ, рдФрд░ .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 

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдРрд╕реЗ рдХреЛрдб рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдмрд╛рдж, рдЖрдк рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреИрдирд▓ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:



рдкреБрдирд╢реНрдЪ: рд╕рд╛рдордЧреНрд░реА рдХреЙрдкреАрд░рд╛рдЗрдЯ рд╣реИ, рднрд▓реЗ рд╣реА рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╣рдмреНрд░реЗ рдкрд░ рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

Source: https://habr.com/ru/post/hi473030/


All Articles