En publiant un message dans l’éditeur WordPress, après quelques minutes, mon adresse IP sera bloquée par
mod__security
automatiquement. Mettez-la dans la liste des personnes dont l’accès est bloqué par le pare-feu.
lfd: (mod__security) mod__security triggered by xx.xx.xx.xx (MY/Malaysia/-): 5 in the last 300 secs
Pour résoudre rapidement le problème, je dois redémarrer mon modem ou obtenir une nouvelle adresse IP pour accéder à mon serveur via SSH ou WHM, puis supprimer manuellement l’adresse IP bloquée. Voici mon environnement:
-
WordPress 3.4.2
-
Apache classique + ModSecurity + CSF/LFD
Après de nombreuses tentatives et erreurs, j’ai découvert que cela pouvait être causé par les fonctionnalités de «sauvegarde automatique» et de post-révision de WordPress. Lors de l’édition d’un article, WordPress conserve automatiquement le «brouillon» ou la «révision» pendant l’intervalle défini, et trop souvent
TRIGGER
, les règles
mod__security
facilement.
Voici deux solutions:
1. Liste blanche Action WordPress
Ceci est suggéré par mon supporter de serveur, liste blanche quelques actions WordPress communes dans
mod__security
Éditez
whitelist.conf
, et mettez les règles suivantes à l’intérieur.
/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. Désactiver les révisions de publication
Désactivez la fonctionnalité de révisions postérieures à WordPress ou augmentez son intervalle d’enregistrement automatique Éditez
wp-config.php
, ajoutez le code suivant:
define('AUTOSAVE__INTERVAL', 300 );//seconds, 5 mins
define('WP__POST__REVISIONS', false );
Voici mon échantillon complet de
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');
?>
Références
-
lien://blog/wordpress-display-404-after-updated-post/[WordPress
Affichage 404 après la mise à jour du message]. WordPress autosave
-
http://configserver.com/cp/csf.html [ConfigServer Security et
Pare-feu]. Mod Security
Fréquence d’enregistrement automatique et révisions après publication de WordPress]. http://www.cyberciti.biz/faq/wordpress-turn-off-post-revision/ [WordPress:
Désactiver les révisions après publication/Désactiver les révisions]
lien://tag/pare-feu/[pare-feu]lien://tag/mod security/[mod security]lien://tag/wordpress/[wordpress]