*

ペンション・民宿・プチホテル用 宿泊予約 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


 
 

関連記事

ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(2)

前回の物を若干変更しながら、どんどん進んでいきたいと思います。今回は管理画面の表示内容について行って

記事を読む

WordPressのプラグインで独自のページを作る方法がわからない

Wordpressのプラグインを開発していて疑問がでてきました。プラグイン独自のページはどうすればい

記事を読む

ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(12)空室管理画面 C

空室情報のデータベース処理を一気に終えました。ごちゃごちゃしてきたので、もっとスッキリ書く方法が無い

記事を読む

ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(3)

前回のソースがイマイチだったので若干書き直しました。しかし、これで正しいのかも疑問なんですが、取り敢

記事を読む

ワードプレス用宿泊予約プラグイン開発「空室カレンダー表示」

前回ネットで検索して見つけた calendar($year = "", $month = "") 関

記事を読む

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

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 ↑