Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから
公開日:2013年8月5日
最終更新日:2013年12月26日

JSON セキュリティ:PHP で JSON を扱う

JSON のセキュリティ対策は、以下の記事に記載した通りですが、これを PHP では組み込み関数で実現します。この記事では、JSON セキュリティ対策のサンプルプログラムを提示します。

PHP のクラスインスタンスを JSON に変換するには、組み込み関数のjson_encode を使用します。json_encode は、クラスインスタンスだけではなく、配列なども簡単に JSON に変換できます。

概要

この記事で作成する Web サービスでは、json_encode を使用して PHP クラスのインスタンスを JSON に変換します。PHP の場合は配列などを扱う方が適切かもしれませんが、他の言語のサンプルに合わせています。

クライアントからリクエストを受け取ると、Web サービスは該当するデータを検索して、一致したデータを JSON の形式でクライアントに返します。

呼び出し元のクライアントは、jQuery と prototype.js を使用した HTML を作成します。

Web サービスの作成

GET リクエストでパラメーターを受け付け、JSON で値を返すよう定義します。

・json.php

クライアントの作成

Web サービスにリクエストを送信し、レスポンスのデータを表示するクライアントを作成します。レスポンスのデータを表示する際、HTML エスケープしていることに注意してください。

jQuery で作成

実行結果は、以下のようになります。

jQuery によって、以下の行がリクエストヘッダーに追加されていることに注意してください。

  • X-Requested-With: XMLHttpRequest

以下の2行が、レスポンスヘッダー追加されていることに注意してください。

  • Content-Type: application/json; charset=utf-8
  • X-Content-Type-Options: nosniff

prototype.js で作成

実行結果は、以下のようになります。

prototype.js によって、以下の行がリクエストヘッダーに追加されていることに注意してください。

  • X-Requested-With: XMLHttpRequest

以下の2行が、レスポンスヘッダー追加されていることに注意してください。

  • Content-Type: application/json; charset=utf-8
  • X-Content-Type-Options: nosniff


スポンサーリンク




カテゴリー:Webアプリケーションセキュリティ

Twitter でも、いろんな情報を発信しています。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA