前回の記事「そのテーマは安全?海外のWordPressテーマを導入する時に最低これだけは入れておくプラグインと安全の為の知識」の続きです。

海外のWordPressテーマを使用するにあたっては、それが公式サイトで配布されているものではない限り「悪意のあるコード」が仕込まれている可能性があります。気を付けなくてはなりません。

残念な事に、有料テーマであっても過去にトラブルのあったケースもあります。
という話。

WordPressグッズ
WordPressグッズ / takamorry

前回の記事にも書いた通り、AntiVirusなどのプラグインで調べれば、怪しいコードの含まれたファイルにある程度の目星を付ける事は可能です。

しかしそれがどういった内容のものなのかまではわかりません。
特に多く検知されてしまうのが、海外テーマにありがちな著作権表示を暗号化しているコードです。

具体例

WordPressテーマを無料配布している海外サイト
WordPress themesforfree.comから

テーマCivilized1.1をダウンロードしてきます。

※このテーマに悪意のあるコードが仕込まれているという訳ではありません。
ただし自分の知識では100%安全とも言い切れないので各自でご判断下さい。

こんなテーマ。すっきりしていてかなり使いやすいです。

civilized-10

ところがこのテーマをWordPressに適用し、AntiVirusを走らせてみると警告が表示されます。ちなみに前回の記事で検知した例として挙げているスクリーンショットはこの時のものです。

どうやらfooter.phpになにがしかの問題があるようです。
footer.phpを覗いてみると

2012y09m23d_142123862

こんな風になっています。
何かが暗号化されていて、このままでは意味がわかりません。
とりあえず【base64】でエンコード(符号化)されているのかな?というのが読み取れるぐらいです。調べる為にこのコードをデコード(復元)してみます。

利用するのはこちらのツール

ここに上記のfooter.phpのコードから【<?php eval(base64_decode('
】と【'));?>】を削除した残りの部分を入力元データとしてコピペします。

2012y09m23d_122733843

変換ルールは

2012y09m23d_122805531

・入力データ形式(デコード)
BASE64
文字コード→変換不要

・文字コード変換
変換不要

・ダイジェスト
未指定

・出力データ形式(エンコード)
プレーンTEXT

とりあえず以上のような形で。

これで変換実行をクリック

2012y09m23d_123154015

変換結果

2012y09m23d_123225078

抜き出してみます。

?> <hr />
</div>
<p id="footer">
<?php the_time('Y'); ?> <?php bloginfo('name'); ?> .  WordPress . <?php if(is_home()) : ?><a href="http://wordpressthemesforfree.com/" title="Wordpress themes">Wordpress themes</a><?php endif; ?> 
<br><br>
</span>
</p>
<?php wp_footer(); ?>
</body>
</html> <?

どうやら著作権表示が消されないように暗号化されていたようです。
ソースを見る限り、特に問題はなさそうですね。

実はこれ、海外のWordPressテーマの場合によくあります。
フッターの西暦の表示を変更したい時などは、ここを修正して再びエンコードしておけばいいわけです。(エンコードしなくてもいいかな?)

この調べ方を知っていたからといって全ての謎コードの解析ができるという事ではありません。しかも解析して出来上がったコードが悪意のあるものなのかどうなのかを判断するのは、また別の知識が必要です。

しかし最低限の知識としてこの方法を知っておいて損はないでしょう。
ある程度ですが自分のブログが危険な目に遭う確率を下げる事ができます。

自分のブログがマルウェアに感染した場合には、自分だけではなく見に来てくれる人に対して害を与える、つまり自分が被害者ではなく加害者になってしまいます。

いくらデザインが気に入ったといってもノーガード&予備知識無しの状態で、海外の誰が作ったかもわからないWordPressテーマを不用意に使用する事は、少しだけ気を付けたほうがいいと思います。