htaccessでxmlrpc.phpを「0.0.0.0」に誘導アクセス拒否 wp-config.phpでwp-config.phpを無効化
スマホサイトWeb WordPressなどのSEO
小画面 少コンテンツ 省テキスト 多画像対応の
コーディング実験検証
レンタルサーバー会社から、弊社のWordPressサイトが攻撃を受けてサーバーがダウンしたので、
アカウント停止もしくはホームディレクトリーのパーミッションを000にした。
可及的速やかに、サーバー内のWordPressサイトを個別に、htaccessで自分以外をアクセス禁止にして、設定を変更せよ
と要請(命令)があった…
xmlrpc.phpは、管理画面以外からの記事投稿の機能を実現するものらしい。
スマホ(のアプリなど)からの投稿時は、xmlrpc.phpにアクセスして、ログインする。
つまり、クラッキングするならログイン画面を破るだけでなく、xmlrpc.php経由もありということ。
xmlrpc.phpは使わなければ削除も選択肢になるが、WordPressの更新のたびに復活するし、404を出しサーバーの負荷もあるので、却下。
パーミッションの変更なども、サーバーの負荷は残る。却下。
また、「Disable XML-RPC Pingback」プラグインもあるが、どうやら十全ではないようなので、却下。
アクセス拒否の第1案
<Files xmlrpc.php>
Order allow,deny
Deny from all
</Files>
これでも多少サーバー負荷が残るらしいので、
第2案
<IfModule mod_rewrite.c>
~
RewriteBase /
RewriteRule ^xmlrpc\.php$ "http\:\/\/0\.0\.0\.0\/" [R=301,L]
RewriteRule ^index\.php$ - [L]
~
</IfModule>
WordPressをインストールすると、xmlrpc.phpと同じ階層に作成されるhtaccessとその記述。
そこに、xmlrpc.phpにアクセスすると「0.0.0.0」に飛ばす。
これがベストの対策らしい。
まず、xmlrpc.phpの無効化。
add_filter(‘xmlrpc_enabled’, ‘__return_false’);
さらに、xmlrpc.phpの痕跡を隠すために、「X-Pingback」のヘッダー情報も消去。
function remove_x_pingback($headers) {
unset($headers[‘X-Pingback’]);
return $headers;
}
add_filter(‘wp_headers’, ‘remove_x_pingback’);
まとめとしては、
htaccessで、「0.0.0.0」に飛ばす。
あとは念押しで、プラグインを入れる、htaccessで「Deny」、functions.phpで無効化、ヘッダー情報消去など。
じつは、xmlrpc.phpも、このwp-cron.phpも、WordPressの仕様にまつわるクラッカーの餌食になっているようで、ほんとうに腹立たしい。
WordPressサイトにアクセスするたびに、なぜか、wp-cron.phpが稼働し、サーバーに負荷がかかると。
(もの凄いトラフィックのWordPress製メガサイトなどは、何か対策しているのかな?)
これは、wp-config.phpに
define('DISABLE_WP_CRON', true);
を記述して、wp-cron.phpを無効化。
なにか後遺症なり副作用なり、使えなくなるものもありそうだが、アカウント停止から回復するには、選択の余地もない。
そのほか、レンタルサーバー会社推奨の、サーバー負荷対策(クラッカーの所業によるアカウント停止の回避策)として
などがあった。
キャッシュプラグインは、以前トラブったことがあって、あまり導入したくない。
All in one SEOは、可能であれば使用停止は望むところ。
(canonicalさえ設定できれば、どうしても必要というプラグインでもないし…)
なおYARPPは、特別な使い方をしていて、代替案もないので、使用停止は困る…
好評発売中
インスタや今風のECサイトのカード型フィードが、あっという間にできあがり
カテゴリーやタグの関連コンテンツも、お茶の子さいさい
テーマに頼らず、プラグインを使わず、スイスイとWordPressカスタマイズ