*

ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(7)セキュリティ対策

公開日: : 最終更新日:2013/06/26 WordPress ,

ここでセキュリティ対策についてまとめて復習してみます。ネットを検索すると、さまざまな対策が紹介されています。すべてを網羅できないので、最低限だと思われる範囲でまとめてみます。

ワードプレス標準の「wp_nonce_field」

「wp_nonce_field」と「check_admin_referer」のセットはワードプレスで用意されているCSRF対策のひとつです。導入も簡単なので忘れず書いておきたい関数です。「wp_nonce_field」が form 側にセットされる関数。

関数リファレンス/wp nonce field

<form method="post" action="">
   <?php wp_nonce_field( 'name_action','my_function' ); ?>

「check_admin_referer」関数がデータを受け取る側でチェックされる関数です。

if ( !empty($_POST) && check_admin_referer( 'name_action', 'my_function' ) ) {

ネット上ではパラメータが一つのものや2つのものなど様々ですが、公式ページには次のように書かれているので2つのほうが安心できそうです。

$actionと$nameはオプションですが、セキュリティを高めたい場合はこの二つのパラメータを設定することをお勧めいたします。パラメータなしで関数を呼び出すのが簡単ですが、nonceがなんのパラメータも必要としなくなってしまうので、デフォルト値が何かをしっているクラッカーにとってあなたのnonceを推測して被害を与えるのが簡単になってしまいます。

SQLインジェクション

これはPHPで一般的な対策です。ご存知無い方は、なぜ危険なのか検索してみてください。ワードプレスの場合はprepareメソッドがこれの対策用に用意されています。

$username = $_POST['username'];
$results = $wpdb->get_results($wpdb->prepare(“SELECT * FROM user
      WHERE uid=%s AND pwd=%s”, $username, $password ));

option テーブルを使う時に利用していた関数「update_option」はどうなのか気になる所ではありますが、情報が見つからなかったので今のところ対策無しで^^;

実行権限をチェックする

プラグインの実行・操作は管理者のみ可能となっているようにプログラムしなければなりません。底で使えるのが「is_admin()」です。特にデータを保存したり受け取る場合にはチェックすることが大切みたいです。

if ( is_admin() ) {
  $username = $_POST['username'];
  $password = $_POST['password'];
  $results = $wpdb->get_results($wpdb->prepare(“SELECT * FROM user
       WHERE uid=%s AND pwd=%s”, $username, $password ));

こんな感じで権限をチェックするように書いておくと安心です。

その他のセキュリティ対策

ディレクトリトラバーサル・HTTPヘッダーインジェクション等のキーワードが見つかります。今回は該当する部分が無さそうなのでスルーしておきます。

そして次の記事を読んで、ほとんどソースを書きなおすことになりましたw

WordPressプラグインのコーディングでありがちな10の間違いと設計時に考慮すべきこと
http://tokkono.cute.coocan.jp/blog/slow/index.php/wordpress/most-common-mistakes-in-wordpress-plugins-coding/


Sponsored Link


 
 

関連記事

新バーチャル歌姫デビュー CeVIO Creative Studio は期待して良さそう

既にサンプル曲がガンガンアップされています。噂の歌声合成ソフト CeVIO Creative Stu

記事を読む

ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(6)初期設定画面

ここまでで、ひと通りの仕組みというか流れは理解できたような気がします。まずは初期設定画面から制作して

記事を読む

ワードプレス用宿泊予約プラグイン開発「空室情報読み込み」

前回までに作ったカレンダーに空室状況を表示させます。最初に表示欄を作って確認してからデータベースの読

記事を読む

WordPressのオリジナルプラグインにショートコード機能を持たせる

ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る連載で、ショートコード

記事を読む

ワードプレス用宿泊予約プラグイン開発「空室情報の表示」とか

久しぶりのワードプレスネタ。全然完成しませんわ。今回は最初にブラウザのキャッシュを切る作業をしました

記事を読む

ご質問は掲示板へお願いいたします。

Message

メールアドレスが公開されることはありません。

CAPTCHA


Optionally add an image (JPEG only)

Sponsored Link

エレコム GRAPH GEAR NEO カメラバッグDGB-P01BKにジンバルを入れる

やっぱり高いけどEndurance (エンデュランス) カメラバッグの

エレコム GRAPH GEAR NEO カメラバッグDGB-P01BKが北の国から

一年中GWの美少女です。 Lowepro カメラリュック フリッ

MOZA Mini-S スマホ用スタビライザーが届いた!

1万円弱で買えるスマホ用ブラシレスジンバルの新型 MOZA Mini-

GoPro Hero7 Black用 保護ケース アルミ合金保護フレームがいいよって話

別に大した話ではありません。 最近書くことが少ないのでたまには書

期待の新製品 MOZA Mini-S スマホ用スタビライザーが発売されたみたい

教えてもらった新製品のホームページで MOZA Mini-Sが紹介され

→もっと見る




  •  

PAGE TOP ↑