「これだけ」はやっておこう──「WordPress実行環境とアプリ開発環境」のセキュリティ対策マニュアル:とにかく速いWordPress(19)(2/3 ページ)
エンタープライズ用途での利用が増えている「WordPress」の高速化チューニングテクニックを解説する本連載。今回は、「WordPress実行環境としてのサーバのセキュリティ対策」と「開発者がWordPressアプリケーションを開発する際に実施すべき対策」のポイントを解説します。
「WordPressアプリケーションを開発する」場合に開発者が最低限留意するべきこと
続いて、WordPressアプリケーションの開発担当者が実施すべき基礎項目を解説します。
実施すべきことは以下の5つです。
- IPA「CMSを用いたウェブサイトにおける情報セキュリティ対策のポイント」を確認する
- WordPressアプリケーションから値を出力する場合には、「出力用に用意されたWordPressの関数(WordPressタグ)を使う」か「エスケープ処理」のどちらかで行う
- 入力値を基にしたファイル操作を行う場合は、「入力値を信用しない」
- 管理画面やフォーム機能を実装する際には「セキュリティトークン(nonce)」を利用する
- SQLの実行は「データ処理用に用意されたWordPressの関数を用いる」か、「プレースホルダ」を使う
1:IPA「CMSを用いたウェブサイトにおける情報セキュリティ対策のポイント」を確認する
まず、IPA(情報処理推進機構)が公開した「CMSを用いたウェブサイトにおける情報セキュリティ対策のポイント」をよく読んで、理解するようにしてください。
レポートでは、WordPressを中心とするCMS(Contents Management System)における深刻度の高い脆弱(ぜいじゃく)性として、「SQLインジェクション」と「クロスサイトリクエストフォージェリ」が挙げられています。
またWebシステムのセキュリティ対策には、「値の出力に対するエスケープ」「ファイル操作」「データベース操作」の3つが特に重要と説明されています。
これらを踏まえて、具体的に実践すべき「4つ」の項目を以下から解説します。
2:WordPressアプリケーションから値を出力する場合には、「出力用に用意されたWordPressの関数(WordPressタグ)を使う」か「エスケープ処理」のどちらかで行う
WordPressアプリケーションからの値の出力は、「出力用に用意されたWordPressの関数(WordPressタグ)を使う」か「エスケープ処理」のどちらかで行います。
例えば、サイト情報を表示させる「bloginfo()」などのWordPressが用意している表示出力用関数以外で、変数や関数の戻り値などの値を基にしてhtmlコードなどの出力を行う場合には、「エスケープ処理」を行うようにします。
具体的には、WordPressが用意している「esc_html()」「esc_attr()」「esc_js()」などのエスケープ処理用関数を適用するようにします。
3:入力値を基にしたファイル操作を行う場合は、「入力値を信用しない」
「入力値を信用しない」とはどういうことでしょう。入力値をファイル名として、そのファイルの中身を表示させる処理があるとします。このときに「../../wp-config.php」(データベースへの接続情報などが含まれる、WordPressの特に重要な構成情報ファイル)が指定されたらどうなるか。意図しない重要情報が表示されてしまうことになります。これでは危険です。
そこでこういった場合には、「想定されているファイル名のルールに合致するかどうかをチェックする」処理をきちんと挟んでおかなければなりません。
例えば、ファイル名が英数字であることを条件に、「wp-content」のテキストファイル(*.txt)の内容を読み込んで表示するならば、以下のようなチェック処理を含めておきます。
if ( ! preg_match( '/^[A-Za-z0-9]+\.txt$/', $file ) ) { eixt; }
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- WordPress脆弱性発覚、その後の状況 4.7.2リリース時に脆弱性が公開されなかった理由
2017年2月に発覚したWordPressの脆弱性により、既に約10万件ものサイトで改ざん被害が発生しているという。セキュリティ企業 ESETが、公式ブログで背景と現状、対処方法を解説した。 - 容易にWebサービスを高速化できるNginxを使いこなすための秘訣とは
高速で軽量なOSSのWebサーバとして注目されている「Nginx」。使いこなすための課題や有効なアーキテクチャ構成などをサイボウズでの導入事例と共に明かす。 - 高速・軽量・高機能……Nginxの基礎知識
処理能力の高さなどを理由に、近年、大規模サイトを中心に急速にシェアを拡大しているWebサーバー「Nginx」。この連載では、その特徴と魅力を分かりやすく紹介します。 - WordPress自体のチューニングが必要な理由と高速化の基本的な考え方
企業のCMSサイトやオウンドメディアなどエンタープライズ用途での利用が増加しているWordPressの高速化について解説する連載。初回は、WordPressの高速化が求められる背景や、WordPress高速化の基本的な考え方であるページのロード時間とその構成要素、1秒当たりの同時アクセス数について解説します。