自分の身は自分で守る!WordPressプラグインを使うときに注意していること

Twitterのタイムラインを見てたらこんな記事が流れてきました。

「WP OS FLV」というプラグインで、Trojan.JS.Redirector.ueというのをねじ込まれそうになる・・・ 名前からしてガンブラー系のアレかと予想汗 23 hours ago via Silver Bird ·  Reply ·  Retweet ·  Favorite · powered by @socialditto

いやいや、そのプラグイン昔使ったことあるけど!!!!いやはやなんとまぁ・・・・

WordPressのプラグインやテーマに不正なコードが挿入されたなんて話がここ最近増えてきましたね。

有名処のプラグインにも不正なコードが入っていたってことで、去年ニュースになった気がします。
WordPressのプラグインに悪質なコードが混入 – ITmedia ニュース

かといって基本的に利用は自己責任なので、何とか考えなくてはいけない問題です。
プラグイン無しでWordPress案件をこなすのはなかなかしんどいものがありますし。少なくともContact Form 7 Head CleanerAdmin Menu Editorとかが使えないとホントどーしましょうって感じです。こんなの自分で作れる気がしないですし。

使わないプラグインはアンインストール

『入れてみたけど微妙・・・・』ってプラグイン、無効にしたまま放置してませんか?アンインストールが面倒だというのも気持ちはよくわかります。

有効化していないプラグインの脆弱性を突かれるケースも有るようです。プラグインが有効かどうかに限らずプラグインファイルは読み込まれてはいるので、当然っちゃ当然なんですが。

プラグインを入れている数が多ければそれだけリスクになるので機能していない無駄なものはアンインストール!

プラグインむやみやたらと入れない。

データベースが管理画面から見れたら便利。確かにそうです。僕も開発時にはphpmyAdminをWordPressから見れるようにするプラグインを入れたりします。ただ、少なくとも運用中は要らないですよね。レンタルサーバについてたりしますよね。

一例としてphpMyadminの話をしましたが、『そのプラグインは本当に必要か?』を吟味してプラグインの導入は行いましょう。公式ディレクトリだからと言って安心できないこんな世の中です。

タイトルを書き換えるだとかちょっとしたことはfunctions.phpでやっつけた方がいいかもしれません。自分で書いたコードとプラグインの安全性、どちらが高いかなんて、個人の能力や規模や機能によってだいぶ変わってきますので何でもかんでもfunctions.phpで書いた方がいい!とは思いません。ただ、『このプラグインのこの機能だけ使いたい!』って場合は自分で実装した方が良いかも知れません。

メンテナンスされていないプラグインは避ける

WordPressは結構頻繁にバージョンアップが行われます。なので、その際にはプラグインも最新バージョンに対応させるとかはやるんですけど、それがされていないプラグインは、セキュリティホールも放置されている可能性があります。
まぁ、プラグインの規模にもよるのであれですが、とりあえず、1年近く更新がないものは避けるようにしています。

あんまり気軽にプラグインプラグイン・・・ってのも考え物ですね。
案件によっては、VaultPress等の導入も検討が必要だと思います。

サイト改ざんが身近になっている今、改めて考えないといけないことですね。。。。

自分の身は自分で守る!WordPressプラグインを使うときに注意していることToro_Unit

WordPressでログアウト後のリダイレクトの変更

WordPressを使ったWebサービスを作るとき、ログアウト後のリダイレクト先を変えたいって事がありました。特にユーザー機能は使うのに管理画面は見せたくない!っていうわがままな仕様の場合。

そんなわけで。

function redirect_fix(){
	wp_safe_redirect("http://example.com");
	exit();
}
add_action('wp_logout','redirect_fix');

これだけ!

WordPressでログアウト後のリダイレクトの変更Toro_Unit

WordPressで管理画面外から投稿を追加するwp_insert_post()と、編集するwp_update_post()、削除するwp_delete_post()

WordPressでWEBサービスやら、会員制サイトなんかを作りたいとき、やっぱり管理画面を見せたくないシーンがあると思います。そんなときに重宝するのが、wp_insert_post()とwp_update_post()、wp_delete_post()です。

投稿を追加編集削除というよりは、データベースのthe_postsテーブルをそのまま触っているイメージの方があっている気がします。
引数にデータ―ベースのフィールド名をキーとした配列を取るので、変数に困ったらデーターベースを覗いてみるのも良いかもしれませんね。後学のためにも。

こんな感じで使います。

//投稿
$post_id = wp_insert_post( array(
	'post_author'   => $user_id,
	'post_title'    => $post_title,
	'post_content'  => $post_content,
	'post_status'   => 'publish'
) );

//画像を投稿サムネイルに。
set_post_thumbnail( $post_id, $post_photo_id);

//画像に投稿を関連づける
wp_update_post( array('ID' =>$post_photo_id,'post_parent' => $post_id ) );

画像などのメディアも投稿として管理されているので、wp_update_post()でいじくる事ができます。
コレをページテンプレートに組み合わせることで、管理画面外から投稿の追加・編集ができるページを作成することができます。

ただ、当然のことながら、セキュリティにはかなり気を遣わないといけない事になりますね。
PHPのhtmlspecialchars()や、WordPressのattribute_escape()等の文字列のエスケープや、wp_nonce_field()・check_admin_referer()でフォームからの投稿かどうかをちゃんとチェックする等はやっぱり最低限やっておきたいですね。

WordPressで管理画面外から投稿を追加するwp_insert_post()と、編集するwp_update_post()、削除するwp_delete_post()Toro_Unit

Custom Post Type Permalinks 0.7.5.1をリリースしました。

Cutstom Post Type Permalinks 0.7.5.1 をリリースしました。

アップデート内容は、カスタム分類のアーカイブを
“/投稿タイプ/カスタム分類名/ターム”

に変更する機能のON OFFができるようにしました。

あとは、少々のバグフィックスなどを行っております。

http://wordpress.org/extend/plugins/custom-post-type-permalinks/

何かあったら教えて下さいm(_ _)m Twitter:@Toro_Unit
僕の技術レベルなどもあります故、すべてに対応できるかどうかは解りませんが、とりあえず頑張ります!

Custom Post Type Permalinks 0.7.5.1をリリースしました。Toro_Unit

WordPressにショッピングサイトにするプラグインWelcart

秋口にショッピングサイトの案件があったのですが、EC-CUBEが苦手でどうにかWordPressでできないかなと思ったときに、Welcartで構築してみたのですが、コレがなかなか便利だったので、ご紹介。

Welcart e-Commerce

追加される機能

  • クレジットカード対応のショッピングカート+決済画面の導入
  • サイト会員の管理、会員専用の管理画面
  • 商品管理用画面の追加
  • ポイントの管理
  • お問い合わせフォーム
  • 送料管理

等その他多数のショッピングサイトで使える機能がこれでもかっ!ってくらいに大量に追加されます。

管理画面の変更点

導入すると管理画面に、Welcart Shopと、Welcart Managementというメニューが追加され、ここで商品を追加・管理、受注の管理、決済モジュールの設定などができます。

テーマのカスタマイズ

導入すると、welcart_defaultというテーマが追加されます。それをカスタマイズするのも良いのですが、既存のテーマにカートを導入したり、自作のテーマに導入することもできます。

また、デフォルトテーマのwp_themplatesにWelcartで追加されるページ(ログイン周り、会員ページ、決済ページ、個別商品のページなど)のテンプレートが入っています。コレがテンプレートファイルに入っていないと、プラグインのデフォルトのものが適応されます。Welcartのデフォルトテーマの子テーマとして作っても継承ができないので、このフォルダとその中身だけは個別に作ってあげる必要があります。

また、Welcartの開発元が出しているWelcartホスティングを使うと、インストール、プラグインの初期設定、SSLの設定がすべて終わった状態で開発ができるので、導入のハードルもかなり低いです。
WordPressでECサイトを作ってみたいと思っている方は、是非、検討してみて下さい。WordPressの資産をかなり有効活用できるので、開発もスムーズに行えますよ。

WordPressにショッピングサイトにするプラグインWelcartToro_Unit