情報処理安全確保支援士試験 午後問題から学ぶ【Same-Originポリシ】

情報処理安全確保支援士試験の午後問題には、情報セキュリティに関する最新の動向を反映した題材が採用されています。

キーワードに加え、設計やインシデント対応能力をシミュレーションできる良い学びの場ですので、情報処理安全確保支援士試験合格はもちろん、情報処理安全確保支援士となった後も能力向上のために学習していきましょう。

今回は、「Webサイト間の情報連携」を題材にした「Same-Originポリシ」の問題を解説していきます。

Same-Originポリシとは

Same-Originポリシとは、Webブラウザがアクセス先を制限するセキュリティの機能です。あるWebページのスクリプトから別のサーバにアクセスしてデータを送受信することを禁止します。

Same-Originポリシは、別名でSOP(Same-Origin Policy)や同一生成元ポリシ、同一源泉ポリシなどとも呼ばれます。

ここでSame-Originであるかどうかは、アクセスするURIの「スキーム」、「FQDN」、「ポート番号」で判断します。

例えば、「http://aaa.com/aaa.html」に含まれるスクリプトが、「http://aaa.com/bbb.html」にアクセスすることは可能ですが、「http://bbb.com/aaa.html」「https://aaa.com/aaa.html」「htt://aaa.com/aaa.html:8080」にアクセスすることはできません。

平成31年度春期情報処理安全確保支援士試験での「Same-Originポリシ」

「Webサイト間の情報連携」を題材に「Same-Originポリシ」の問題が出題されました。採点講評によると、正答率が低かったようです。

それでは「Same-Originポリシ」の問題となった部分を見ていきましょう。

 M社は、従業員数200名の小売業である。コーポレートサイトであるWebサイトA(URLは、https://site-a.m-sha.co.jp/と、自社の特定のブランドを扱うECサイト(以下、ブランドサイトという)を複数運営している。現在運営しているブランドサイトは、WebサイトBからWebサイトFの五つである。

WebサイトB(URLは、https://site-b.m-sha.co.jp/は、ブランドBの商品を扱うECサイトで、会員数は10万名である。WebサイトBでは、Cookieを利用したセッション管理を行っている。

売れ筋商品情報及び会員情報を取得する機能(以下、情報連携機能という)を実装することにした。

WebサイトBからWebサイトAへの情報連携を行うために、次の二つのWeb APIをWebサイトBに実装することにした。

  • WebサイトBの売れ筋商品情報を取得可能とするためのWeb API(以下、APIーXという)
  • WebサイトBの会員情報を取得可能とするためのWeb API(以下、API-Yという)

なお、Web APIで受け渡されるデータは、JSON(JavaScript Object Notation)形式にする。Cさんは、API-Yからブランドサイトの会員情報を取得する際、配信を希望する会員の同意を得たいと考えた。そこで、会員情報の取得には、会員のWebブラウザを経由して行う方式を採用することにした。

(図1抜粋)

(Y-1)(Webブラウザ→WebサイトA)会員が売れ筋商品情報配信の申込ページにアクセスする。(会員がWebサイトBにログインした状態のときにアクセスする)

(Y-2)(Webブラウザ←WebサイトA)申込ページに加え、WebサイトBのAPI-Yを呼び出すスクリプトZが返される。

(Y-3)(Webブラウザ)会員が申込を行う。

(Y-4)(WebブラウザのスクリプトZ→WebサイトB)会員情報を取得するリクエストがスクリプトZから送られる。

(Y-5)(WebブラウザのスクリプトZ←WebサイトB)会員情報が返される。

(Y-6)(Webブラウザ)会員情報がWebブラウザに表示される。

(Y-7)(Webブラウザ→WebサイトA)申込情報と会員情報が送られ、保存される。 

スクリプトZは、(a)によって、(b)、(c)、(d)のいずれかが異なるリソースへのアクセスが制限される。そこで、Cさんは、この制限をう回するためにJSONP(JavaScript Object Notation with Padding)を用いることを開発部のD課長に提案した。

設問1(1)本文中の(a)に入れる適切な字句を答えよ。

正解:Same-Originポリシ

設問1(2)本文中の(b)〜(d)に入れる適切な字句を解答群の中から選び、記号で答えよ。

正解:FQDN、スキーム、ポート番号(順不同)

【出典:情報処理安全確保支援士試験 平成31年度春期午後1問1(一部、省略部分あり)】

会員情報を取得するシーケンスにおいて、WebサイトAで生成されたスクリプトZが、WebサイトBにアクセスします。

ここで、WebサイトA(URLは、https://site-a.m-sha.co.jp/)とWebサイトB(URLは、https://site-b.m-sha.co.jp/)は、URIのFQDNが異なるので、Same-Originポリシによってアクセスが制限されることを読み取りましょう。

これを回避(う回)するために、CさんはJSONP(JavaScript Object Notation with Padding)を用いることを考えました。

ちなみに、JSONとはJavaScriptにおけるオブジェクトの表記法を応用したデータ形式で、JSONに関数呼び出しなどのコードを付加したものが「JSONP」です。

Same-Originポリシを回避する手段の一つで、異なるサイトのデータを呼び出して利用する場合などに利用されます。

Same-Originポリシの用語とその意味を適切に理解するようにしましょう。