本日、サイト構築をしている知人からヘルプ依頼が届きました。
WordPress のテーマとプラグインをいじっていたら、サイト全体が文字化けしてしまい、コンテンツ表示もダッシュボードも正しく表示できなくなったそうです。テーマを元に戻しても、プラグインを削除しても文字化けが直らず、困ってしまっているということです。
「Warning: htmlspecialchars() [function.htmlspecialchars]: charset `UTF-7′ not supported, assuming iso-8859-1 in /home/users/wp/xxxx.jp-689520dffac1133c/web/wp-includes/formatting.php on line 2751」ページソースを覗いてみたところ、ヘッダーの先頭部分に、
<meta charset=”UTF-7″>
とあるので、WebブラウザーはHTMLファイルがUTF-7だと思って表示しますから文字化けするわけです。ダッシュボードのワーニングメッセージも同じような理由でしょう。
テーマ編集画面でPHPファイルを見る前にまずは検索ということで、「wordpress function.htmlspecialchars warning utf-7 not supported」と検索してみたところ、本家WordPressの掲示板情報が出てきました。
これによると、設定→表示設定 の中の文字設定が原因のようです。
問題が発生しているサイトの設定を確認してみると、もろにその通りになっています。
PHPファイルを編集しなくちゃいけないかとちょっとドキドキしていましたが、UTF-7 を UTF-8 に一文字書き替えるだけなので簡単。
実際に書き替えてみたところ、あっさり解決。
しかし、こんなところを勝手に編集してしまうとはどんなプラグインなんでしょうね。
![WordPress3.6ダッシュボード画面の上部にワーニングが出る Warning: htmlspecialchars() [function.htmlspecialchars]: charset `UTF-7' not supported, assuming iso-8859-1 in /home/users/wp/xxxx.jp-689520dffac1133c/web/wp-includes/formatting.php on line 2751](http://www.lifewithunix.jp/notes/wp-content/uploads/2013/08/wp36utf7warning.jpg)

なにか行儀の悪いプラグインをインストールしたせいで、デフォルト文字コードが書き換わってしまったのだと思っていましたが、WordPressダッシュボードに表示されるフォーラムの書き込み情報や、このページへ飛んでくる検索キーワードなどから判断すると、ロリポップのWordPressユーザーが大規模のサイト改ざん被害を受けていて、偶然知人がサイトメンテナンスをしていた時刻とハッキングされた時刻が同じで被害を受けてしまった可能性がありそうだとわかりました。サイト構築中で改ざんはないものの文字コードを書き替えられてしまったということかもしれません。
共用レンタルサーバーは、サーバーOSに脆弱性があると、自分のサイトは完璧に設定していても、どこか設定が緩いアカウントから侵入されて、サーバー脆弱性を使って同じホストの全ユーザーが被害を受けてしまうことがあるのが恐いわ。
さらに詳しい情報を知らせてもらったところ、「DB Hacker Hacking」という文字がタイトルに入っていたそうです。プラグインインストールは関係ないようです。単にWordPressメンテナンス作業と改ざんされた時間が同じだったためのようです。