Редактируя сообщение в редакторе WordPress, через несколько минут мой IP будет автоматически заблокирован
mod__security
, помещен в список запрещенных доступа брандмауэра, и в журнале отображается проблема безопасности«
5 за последние 300 секунд
».
lfd: (mod__security) mod__security triggered by xx.xx.xx.xx (MY/Malaysia/-): 5 in the last 300 secs
Чтобы быстро это исправить, мне нужно перезагрузить модем или получить новый IP-адрес для доступа к моему серверу через SSH или WHM, а затем удалить заблокированный IP-адрес вручную. Вот мое окружение:
, WordPress 3.4.2
, Классический Apache ModSecurity CSF/LFD
После многих попыток и ошибок я обнаружил, что это может быть вызвано «автосохранением» WordPress и возможностями пост-ревизии. При редактировании публикации WordPress будет автоматически сохранять «черновик» или «после редакции» в течение определенного интервала, и слишком часто будет
TRIGGER
правила
mod__security
.
Вот два решения:
1. Белый список действий WordPress
Это предложено моим сторонником сервера, внесите в белый список некоторые общие действия WordPress в
mod__security
. Отредактируйте
whitelist.conf
и вставьте в него следующие правила.
/usr/local/apache/conf/modsec2/whitelist.conf
<LocationMatch "/wp-admin/page.php"> SecRuleRemoveById 300013 300014 300015 300016 300017 </LocationMatch> <LocationMatch "/wp-admin/post.php"> SecRuleRemoveById 300013 300014 300015 300016 300017 </LocationMatch> <LocationMatch "/wp-admin/admin-ajax.php"> SecRuleRemoveById 300013 300014 300015 300016 300017 </LocationMatch> SecRule REQUEST__URI "/wp-admin/async-upload.php" phase:1,nolog,allow,ctl:ruleEngine=Off SecRule REQUEST__URI "/wp-admin/async-upload.php" phase:2,nolog,allow,ctl:ruleEngine=Off
2. Отключить публикацию ревизий
Отключите функцию пост-ревизий WordPress или увеличьте интервал автосохранения. Отредактируйте
wp-config.php
, добавьте следующий код:
define('AUTOSAVE__INTERVAL', 300 );//seconds, 5 mins define('WP__POST__REVISIONS', false );
Вот мой полный пример
wp-config.php
WP-config.php
<?php/** ** Enable W3 Total Cache ** /define('WP__CACHE', true);//Added by W3 Total Cache define('AUTOSAVE__INTERVAL', 300 );//seconds, 5 mins define('WP__POST__REVISIONS', false ); //** ** MySQL settings ** ** //Added by WP-Cache Manager define('DB__NAME', 'removed-for-security'); //The name of the database define('DB__USER', 'removed-for-security'); //Your MySQL username define('DB__PASSWORD', 'removed-for-security');//...and password define('DB__HOST', 'localhost'); //99% chance you won't need to change this value define('DB__CHARSET', 'utf8'); define('DB__COLLATE', ''); define('AUTH__KEY', 'removed-for-security'); define('SECURE__AUTH__KEY', 'removed-for-security'); define('LOGGED__IN__KEY', 'removed-for-security'); define('NONCE__KEY', 'removed-for-security'); $table__prefix = 'abc__'; define ('WPLANG', ''); @ini__set('log__errors','On'); @ini__set('display__errors','Off'); @ini__set('error__log','/home/username/www/php-errors.log'); /** That's all, stop editing! Happy blogging. ** /if ( !defined('ABSPATH') ) define('ABSPATH', dirname(____FILE____) . '/'); require__once(ABSPATH . 'wp-settings.php'); ?>
Рекомендации
, ссылка://блог/WordPress-дисплей-404-после обновляемого столба/[WordPress
Дисплей 404 после обновления сообщения], WordPress автосохранение
, http://configserver.com/cp/csf.html [ConfigServer Безопасность и
Брандмауэр], Mod Security
Частота автосохранения WordPress и ревизии], http://www.cyberciti.biz/faq/wordpress-turn-off-post-revision/ [WordPress:
Отключить публикацию ревизий/отключить ревизии]
ссылка://тег/брандмауэр/[межсетевой экран]ссылка://тег/mod security/[mod security]ссылка://тег/WordPress/[WordPress]