WordPressの投稿や固定ページ本文やウィジェットでPHPコードを動作させるのは危険なのか?

公開日:2017年5月25日 使い方など
Knowledge Base Wordpress パソコン カスタマイズ 設定

【この記事の目次】- 必要な部分だけ見たいときにどうぞ - [表示する]

ワードプレスでサイト作りをしているとき、リスト表示などカスタマイズしたいときにググるとよく出てくる「このPHPコードをコピペして・・・」という紹介記事。

WordPressではセキュリティの観点から(後述します)投稿や固定ページなどの本文、ウィジェットではPHPコードを直接実行できるようになっていません。

そこで登場するのが「EXEC PHP」や「ezPHP」などのプラグイン。これらを使えば簡単に本文内でphpコードを実行できるようになります(専門用語では「phpを評価する」というようです)。

ただ、「EXEC PHP」はPHPのバージョンが7以降のサーバーでは動作しないし、ネット上ではこのプラグインは危険??というものがたくさんあります。

そこで今回は、投稿や固定ページの本文などでphpコードを直接実行するにあたって注意することについて分かる範囲で解説したいと思います。おそらく他のサイトとは大きく認識が違うと思いますので参考程度に読んでください。

「PHPの直接実行は危険」は本当??

WordPressがこれを推奨しない(標準で実行しないようにしている)理由について、いろいろと調べてみました。

すると・・・PHPコードを直接実行することが危険だということでもないような結論に達しました。

懸念されるのは不正にログインされて、不正なPHPコードを記述されてしまうことなんです。

ここで考えるべきはログインしたときの権限。

管理者でログインされてしまえばテーマ内やプラグイン内のPHPプログラムを書き換えたりすることができますから、「サイト全体が危険=投稿や固定ページ本文に限ったことではない」ということになりますね。

そして、投稿者や寄稿者、編集者など記事投稿ができる権限では、その投稿にPHPコードを挿入して実行させることができるようになり、編集者は他人の投稿を編集できるようになりますからリスクが高まります。

つまり、PHPを記述することが危険なのではなく、不正にログインされることが危険ということなんですね。

結論としては不正ログイン対策をすることである程度の危険は回避できるということになります。

不正ログインしようとした形跡は当サイトでも見受けられます

し、いろいろな方法で対策をすることはできます

のでいろいろな方法でサイトをガードするようにすることが最善策だと思われます。

【WordPress】ダッシュボードの「アクティビティ」にカスタム投稿タイプや固定ページを含める方法

WordPressをCMSとして使う「ワードプレスとブログの違い」

【WordPress】「bbpress」に「bbp style pack」プラグインを追加して会員制の掲示板を作る方法


PHPコードとショートコードのどちらを使う?

前述したようにPHPが投稿本文で実行できないとプラグインなどで作られたコンテンツを表示したり動作させたりする方法がありませんね。そこで登場するのがショートコード。[]で囲まれたコードを入れることで動作するという機能ですね。

これが何をしているかというと、ショートコードをWordpressが読み込んだときに、ショートコードの元となるプログラムを探しに行き、実行し、表示するという動作をさせているんです。これによって何かのコンテンツを追加表示させるためのプラグインが動作できるんですね。

それからショートコードにはもう1つ利点があって、Wordpressではエラーとなったショートコードは動作させずにショートコードをそのまま表示するようになっています。

PHPコードを本文で使えるようにして挿入し、表示してみたらエラーが出たという経験はありませんか?PHPは実行させた段階でエラーが出るとその下のプログラム行は読み込まずに停止してしまう(転んでしまう)という欠点があります。PHPを挿入した過去の投稿が使用できなくなったプログラムコードのせいで停止し、ページが表示されなくなっていることに気づかないなんてこともあります。それを回避できるのがショートコードのいいところです。

エラー時にはショートコードがズバリ表示されてしまいますが、それがショートコードであることはWordpressでサイトを作っている人しか分からないわけですから、ページが途中でエラーコードになってしまうよりはよっぽといいということです。

ではPHPコードをショートコード化して投稿本文などに挿入するには??というところへ行くと思います。それができるようになるプラグインがあるんですね。Wordpressはどこまでもすばらしい!!

そのプラグインは

です。これを使うと、あらかじめ設定画面でPHPコードを入力したショートコードを作っておいて、そのショートコードを挿入すればエラー対処ができるというような機能を追加できます。非常に便利です。

ただ、このプラグインを使うと「EXEC PHP」のように投稿本文などに挿入されたPHPコードも実行できてしまうので、都市伝説のように言われているPHPコードを使えるようにするのは危険と考える方は使用を控えたほうがいいかもしれませんね。

ひまあーと(管理人)
  • 記事の作者: ひまあーと(管理人)

  • ☆最後までお読みいただきありがとうございました。記事作者のひまあーとです。
    ☆Wordpressでサイトをカスタマイズしていく上で有用な情報を配信しつつ、「ココナラ」でサイトカスタマイズのお手伝い、不具合の修復、サイト引っ越し代行などをさせていただいております。
    ☆Wordpressネタが多いですが、趣味の「園芸」「卓球」などの情報や日々の出来事などもどんどん増やしていきますのでよろしくお願いいたします。


いつでもご相談・サイトカスタマイズの依頼を受け付けています

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。

※一度もココナラを使ったことがない方はココナラへの無料登録が必要です。こちらから登録後、上のリンクをクリックする、またはココナラトップページから「ひまあーと」を検索してお問い合わせください。


【スポンサーリンク】


記事の拡散にご協力をお願いします

閲覧いただきありがとうございました。役に立つ情報でしたら是非SNSでシェアをお願いします

関連情報