読者です 読者をやめる 読者になる 読者になる

WordPressのセキュリティ対応

最近、WordPress 4.7 と 4.7.1 の2つのバージョンで、深刻な脆弱性が発見されました。ログインしなくても誰でもページを修正できてしまう、というものだそうで至急最新版への更新が推奨されています。


派遣先の大学では、講座毎の活動などをブログで情報発信しています。また、県内企業とのプロジェクトをブログをベースにしたWebページで紹介したりもしています。実に多くのブログが使われています。


それらの中には、今回、脆弱性が指摘されたバージョンがあるかもしれません。そうした場合、いたずらされる可能性があるので、管理する立場としては放置できません。しかも、大学の総務宛に、文部科学省の大臣官房政策課情報システム企画室という部門から、この脆弱性に対する注意喚起のメールも届いていたそうです。立場的には、対策を行ったというポーズだけでもする必要があります。


ということで、使われている WordPress のバージョンを確認して、該当するバージョンを使っているサイトの管理者に、更新を指示することになりました。


幸い、学内で使われているブログの多くが1台のサーバーにあり、1つのディレクトリに格納されています。このディレクトリから WordPress のサイトを探し出し、そこで使われている WordPress のバージョンを調べてリストを作ればいい訳です。そして、該当するバージョンが使われていたら、そのサイトの管理者に更新するように伝えて対処してもらうことになります。


ここで、私の作業は、このリストを作ること。

WordPress のサイトかどうかは、ディレクトリの下に、wp-config.php というファイルがあるかどうかで判定できます。また、WordPress のバージョンは、wp-includes というディレクトリの下に version.php というファイルがあり、これに記載されています。

 

また、ブログの名称や管理者の連絡先は、データベースに記載されてますが、先ほどのwp-config.php にデータベースにアクセスするのに必要な情報が記載されているので、これで接続し、該当するデータを取り出せば確認できます。

ということで、PHP で作ることに。


実は、ブログの最終更新日を調べたり、主に画像データですが大量にHDDを使っているサイトを調べたりするため、このディレクトリにある WordPress のリストを作るスクリプトは既に作ってあった。PHPディレクトリ一覧を調べる関数や、ファイルを読み込む関数、MySQL にアクセスしてSQLで問い合わせする、とまあ基本的な関数ばかりで作れます。

 

途中、ディレクトリのリストから WordPress の情報を格納する配列を作って、連想配列でデータを入れていくだけ。最後にそれを使ってCSVファイルに書き出して終了です。別に、ruby とかでもできそうですが、私はこういった処理、特にデータベースにアクセスする処理では、PHPに慣れていたのでPHPを使いました。


こうやって調べたところ、1件だけ該当してしました。そして、担当者に連絡してもらって WordPress を更新してもらいました。


該当するのが1件も無いと、ほんとうに調べたのか、と思われてもつまらないし、そうそう該当するサイトがあっても面倒。1件該当してて、それを確実に更新しました、というのはよかったのかも、なんて思ってます。

 

f:id:muzina_630:20170207164051j:plain