Редактируя сообщение в редакторе 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]