• かちびと.net

    任意のファイルを読み込み、その場に実装するWordPressショートコードのご紹介。file_get_contentsを使って内部ファイルでも外部ファイルでも読み込めるようにします。

    Kudos for

    WordPress jQuery
  • About This

    Web制作に役立つTips、チュートリアル、、マーケティングに役立つ情報などのリソースをほぼ毎日配信しています。宜しければメモ代わりにご利用下さい。詳しい情報はAbout me またはhumans.txtをご覧下さい。

    Kachibito.net is a community-based website for web designers and developers. The site includes a popular weblog, a design gallery, a open source software, design tips, and the various web-news.

  • Links

任意のファイルを読み込み、その場に実装するWordPressショートコード

スポンサーリンク

3連休ですがいつも通り更新です。暇なものでして。今日はWordPressの小ネタです。一見凄く使えそうですが、使い方に気を付けたほうがいい、みたいなTips。任意のファイルを外部だろうが内部だろうが読み込むショートコードです。

休日ですし、ちょっとネタっぽい内容です。htmlでもxmlでもcssでも、指定したファイル内の文字列を取得してその場に実装します。

コード

以下のコードをfunctions.phpに含めます

function show_file_func( $atts ) {
  extract( shortcode_atts( array(
    'file' => ''
  ), $atts ) );

  if ($file!='')
    return @file_get_contents($file);
}
add_shortcode( 'show_file', 'show_file_func' );

で、ショートコードを書く。

[show_file file="example.html"]

これで、example.htmlというファイル内の文字列がその場に読み込まれます。

これは文字列を書き出しますので、PHPファイルを読み込みたい場合は別の方法になります。↓
プラグインを使わず投稿記事や固定ページの好きな場所に任意のPHPファイルを挿入、実行できるようにする

外部ファイルでも読み込めます。

[show_file file="http://www.yahoo.co.jp/"]

Yahoo!を読み込んでみました。これがセキュリティの弱いサイトならテーマ少し工夫すればフィッシング詐欺サイト量産できちゃいますね。例えばセキュリティの甘いサイトのコンタクトフォームなどを読み込んで送信先を変え・・とかでしょうか。

セキュリティの話

file_get_contents()という関数は指定したファイルの文字列を全て取得する関数で、それをショートコードにしたものが上記のコードで、このように外部ファイルにも対応しています。

じゃあ、当然悪用されるじゃないかと言うと、そうでもなくて逆に読み込んだ側のログを相手に取られる恐れもあります。ハニーポット的な・・・分かりませんけどw

この関数を使うにはphp.iniでallow_url_fopenがonである必要があるのですが、allow_url_fopenがonの状態は外部ファイルが実行される事を意味しますのでセキュリティ上、安全とは言えない状態です。多くのレンタルサーバーではセキュリティ上の問題から、基本的にoffになっているようです。セキュリティの話に関してはPHPのセキュリティを高めるための個人的メモという記事が分かりやすいのでご参照下さい。

file_get_contentsが良い悪いではなく、技術は気をつけて使いたいですね、というお話でした。以下を参照しました。

via:Cats Who Code

URL :
TRB :

Ads

Posts

Contact

Services