wordpressログインページへの不正アクセスを防ぐ

 wordpressは人気の高いCMSなのだが、それゆえに不正アクセスなど攻撃されやすいCMSでもある。

 セキュリティ対策として、「Limit Login Attempts」というwordpressのログイン試行回数を制限できるプラグインを入れていた。
「Limit Login Attempts」解説サイト

 そのプラグインのログを見ると、某弱小運営サイトで何度もアクセスを試みられていて、怖いのは、既にアカウントが割れてしまっていたのだ。もちろん、「admin」なんて一般的に使われるものは使っていない。すぐにパスワードをさらに桁数を増やしたのだが、なんだか不安だ。

 別のサイトでは、Jetpack内にある「プロテクト」を利用している。世界中ののWordPressサイトのクラウドを利用して、悪意のあるIPアドレスを識別・ブロックしてくれるという優れもの。時間が経つほど精度が上がっていくのだ。
Jetpack「プロテクト」解説サイト

 こちらも不正アクセスを試みられているのがわかった。

 「プロテクト」は悪くなさそうだけど、もうちょっとセキュリティ対策をしようか。

 そう思って、ログインページのアクセスをIPで制限することにした。
「wordpressログインページのIP制限」解説サイト

今までIP制限をしなかったのは、自分のネット環境がいつ変わるか分からなかったし、いざ変わるときはきっとバタバタしているので、この辺りを修正するのが面倒だろうと思ったからだ。でも、最近の攻撃数の多さを考えるとそんなことも言ってられなくなった。

というわけで、現在行っているセキュリティ対策は、上記の、ログインページのIP制限と、Jetpack「プロテクト」(念のため)、他にFTPアクセスのIP制限をやっている。

wordpressで新規投稿が出来なくなった!

 相当久しぶりに記事を投稿しようと思い、このサイトの管理画面にログインした。

 投稿する前に、wordpress本体や、多くのプラグインのアップデートをする。wordpressのバージョンは、4.2.2–jaに。

 最新のアップデートは、様子をみつつ、バグ報告がないことを確認してからやっていたが、最近はそれよりセキュリティが心配でさっさとアップデートしていた。面倒だったからというのと、クライアントではなく自分自身が運営しているサイトだったから。

 そして、久しぶりに長い記事を書いたら、「公開」ボタンのところがなにかいつもと違う。「レビュー待ちとして送信」となっていたのだ。 最新バージョンになって仕様が変わったのかな。でも、「下書きとして保存」ボタンは今まで通りあったので、とりあえずここで保存しておくかとクリック。
1

 すると…

 投稿内容が消えてしまった! 下書きとしても保存されていない!

 はぁ、本当に久しぶりに記事を書いたのに…

 何度試してみても投稿できない。途中まで書いて放り投げてあった以前の下書きをちょっと修正して投稿したら、これまで消えてしまった。なんなんだよ、もう。

 今回、なんの確認もせずにアップデートをかけたのは、2つのサイトなのだが、片方は問題なく投稿できて今までとなんらかわらない。なのに、余計なプラグインも入れていない、デーマも付属のものを利用しているこのサイトでバグが発生した。

 他に同様の現象が報告されていないか検索してみた。

 その結果、どうもwordpressのバージョンアップで、文字コードが複数混在してしまったようで、現時点ではまだバグフィックスされたアップデートはでていないようだ。

 いくつか見つけた質問掲示板でも、明らかな解決法はのっていない途中経過だけだった。

 もう面倒だから、バグフィックスが出るまでこのまま放置かな。

 今回の問題は、どうもデータベース内で文字コードが変わってしまったことが原因のようだ。文字コードを直すのはそんなに難しい方法ではないし、ダメだったとしても戻すのが簡単そうだったので試すことにした。ネットで探し出した方法は、php.iniとか、.htaccessとか、前のバージョンに戻すとか、なんか面倒だったのだ。明確に解決した、となっているものでもなかったし。

    【手順】

  • phpMyAdminにログインする。
  • テーブルの「照合順序」が「utf8_general_ci」「ujis_japanese_ci」と混ざっているので、全て「utf8_general_ci」にする。「操作」の左から2番目のアイコン「構造」で変更できる。
  • これだけだと、テーブル自体の照合順序が直っただけ。次に、テーブルの中身の照合順序を直す。左メニューでずらっと並んでいる各テーブルを一つ一つクリックし、フィールドを全てチェックして、「変更(鉛筆アイコン)」をクリック。
  • そこも、「照合順序」が「utf8_general_ci」「ujis_japanese_ci」と混ざっているので、全て「utf8_general_ci」にする。面倒だけど、各テーブル全部やる。

2

これで、とりあえず投稿時のバグは直ったようだ。当分、新規記事は消えてしまってもいいように、外部テキストに保存してから投稿すると思うが。

源泉徴収税額の計算方法(手取りの場合)

1 税率が10.21%の場合(手取額が897,900円以下の場合)
 手取額÷0.8979(1-10%×102.1%)=支払金額
2 二段階税率の適用がある場合(手取額が897,900円超の場合)
 (手取額-102,100)÷0.7958(1-20%×102.1%)=支払金額

●原稿料の報酬を手取契約10万円で支払う場合の支払金額等の計算
 支払金額:100,000円÷0.8979=111,370円
 源泉徴収税額:111,370円×10.21%=11,370円(1円未満の端数は切り捨て)
 手取額:111,370円-11,370円=100,000円

●エクセルの計算式
=小計/0.8979-小計 (小計を該当のセル番号に差し替え)

参考サイト:国税庁 手取契約の場合の源泉徴収税額の計算方法

phpMyAdminの不正アクセス

phpMyAdminの脆弱性を悪用した不正なアクセスが増えているそうだ。心配なので対策を取ることにした。

    【対策】

  • 最新版のphpMyAdminを利用する。
  • 「scripts/setup.php」ファイルが存在している場合、必ず削除する。
  • phpMyAdminの認証機能だけでは不十分な為、.htaccess で、IPアドレス制限やパスワード制限を設定する。
  • 「config」ディレクトリが存在している場合、削除或いはパーミッションを変更し、外部からアクセス出来ないようにする。
  • phpMyadminの設置ディレクトリである事が推測されないように、ディレクトリ名を変更する。

自動アップデートでのトラブル

 WordPress3.0.4にするため、自動アップデートをしたら、「最新のバージョンをインストールしています…」のところで止まってしまった。

 その後、どのページにアクセスしても、「予定に基づいたメンテナンスを行っているためしばらくの間ご利用できません。少し間をおいて再度確認してください。」というメッセージが表示されるのみ。

 これは、メンテナンスモードが有効なままになっているからのようだ。

 再インストールかと思ってうんざりしたが、WordPress下に作成された「.maintenance」ファイルを削除すると、メンテナンスモードが解除された。

 今回は、アップデート自体は完了できたようなので、これだけで無事解決。