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]