wordpress-firewall image、title = "wordpress-firewall"、width = 300、height = 300

WordPressのエディタでポストを編集すると、私のIPは自動的に `mod__security`によってブロックされ、ファイアウォール拒否アクセスリストに入れられ、ログにはセキュリティ上の懸念が示されています。

lfd: (mod__security) mod__security triggered by xx.xx.xx.xx (MY/Malaysia/-): 5 in the last 300 secs

迅速に修正するには、モデムを再起動するか、SSHまたはWHM経由でサーバーにアクセスするために新しいIPを取得してから、ブロックされたIPを手動で削除する必要があります。ここに私の環境があります:

  1. ワードプレス3.4.2

  2. クラシックApache ModSecurity CSF/LFD

多くの試行錯誤の後、私はこれがWordPressの「オートセーブ」とポストリビジョン機能によって引き起こされる可能性があることを発見しました。ポストを編集するとき、WordPressは定義された間隔の間に “ドラフト”または “ポストリビジョン”を自動保存します。また、頻繁に `mod__security`ルールをトリガします。

ここには2つの解決策があります:

1.ホワイトリストワードプレスアクション

これは、私のサーバサポーターが提案するもので、一般的な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');
?>

参考文献

  1. link://blog/wordpress-display-404-after-updated-post/[WordPress

投稿を更新した後の表示404]。

WordPress autosave


  1. http://configserver.com/cp/csf.html

    [ConfigServerセキュリティと

ファイアウォール]。

Mod Security

WordPressの自動保存の頻度と投稿の改訂]。

http://www.cyberciti.biz/faq/wordpress-turn-off-post-revision/

[WordPress:


firewall

リンク://tag/mod

security/[mod

security]

wordpress