続いて、WordPressアプリケーションの開発担当者が実施すべき基礎項目を解説します。
実施すべきことは以下の5つです。
まず、IPA(情報処理推進機構)が公開した「CMSを用いたウェブサイトにおける情報セキュリティ対策のポイント」をよく読んで、理解するようにしてください。
レポートでは、WordPressを中心とするCMS(Contents Management System)における深刻度の高い脆弱(ぜいじゃく)性として、「SQLインジェクション」と「クロスサイトリクエストフォージェリ」が挙げられています。
またWebシステムのセキュリティ対策には、「値の出力に対するエスケープ」「ファイル操作」「データベース操作」の3つが特に重要と説明されています。
これらを踏まえて、具体的に実践すべき「4つ」の項目を以下から解説します。
WordPressアプリケーションからの値の出力は、「出力用に用意されたWordPressの関数(WordPressタグ)を使う」か「エスケープ処理」のどちらかで行います。
例えば、サイト情報を表示させる「bloginfo()」などのWordPressが用意している表示出力用関数以外で、変数や関数の戻り値などの値を基にしてhtmlコードなどの出力を行う場合には、「エスケープ処理」を行うようにします。
具体的には、WordPressが用意している「esc_html()」「esc_attr()」「esc_js()」などのエスケープ処理用関数を適用するようにします。
「入力値を信用しない」とはどういうことでしょう。入力値をファイル名として、そのファイルの中身を表示させる処理があるとします。このときに「../../wp-config.php」(データベースへの接続情報などが含まれる、WordPressの特に重要な構成情報ファイル)が指定されたらどうなるか。意図しない重要情報が表示されてしまうことになります。これでは危険です。
そこでこういった場合には、「想定されているファイル名のルールに合致するかどうかをチェックする」処理をきちんと挟んでおかなければなりません。
例えば、ファイル名が英数字であることを条件に、「wp-content」のテキストファイル(*.txt)の内容を読み込んで表示するならば、以下のようなチェック処理を含めておきます。
if ( ! preg_match( '/^[A-Za-z0-9]+\.txt$/', $file ) ) { eixt; }
Copyright © ITmedia, Inc. All Rights Reserved.