*

ペンション・民宿・プチホテル用 宿泊予約 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 プラグインを作る(9)空室管理画面を考える

前回までで基本的なプラグインの制作方法を簡単に学びました。今回からは空室管理の画面を作ってみます。柔

記事を読む

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

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

記事を読む

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

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

記事を読む

WordPressのプラグイン開発を効率的にするフレームワークたち

Wordpressでプラグインを作っていて「フレームワーク使えないのかな?」と疑問を持ちました。そこ

記事を読む

ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(4)データベース基礎

今回はWordPressのプラグイン開発で必要になるデータベースに関する知識ついて調べました。この辺

記事を読む

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

Message

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

CAPTCHA


Optionally add an image (JPEG only)

Sponsored Link

GoPro HERO7 Black 〜 インフルの熱で異常行動か?

何故か記憶に無いのですが GoPro HERO7 Blackが届きまし

軽量レバーロック式三脚を物色する美少女

旅行用三脚として活躍しているのは GITZO GT1542T と KT

激安中華な Bluetooth 5.0 イヤホンを買ってみたけど便利ね

前から気になっていた Bluetooth 5.0 イヤホン。 耳

2018年に購入したもので最も良かったものはミニスライダー

あけまして おめでとうございます 2019年 第一発目にご紹介す

Final Cut Pro X 用の無料 Calloutsプラグイン13種&12種がいい感じ

すっかり Final Cut ネタが続きますが皆様いかがお過ごしでしょ

→もっと見る




  •  

PAGE TOP ↑