PR

稲荷 幹夫氏 サイバード取締役技術部長

CGIで退会後の不正利用を防ぐ

 A社は,ECサイトの運用を始めてからしばらくすると,会員ではないユーザーがコンテンツを取得していることに気が付いた。

 調査すると,元会員だったユーザーが退会後にアクセスしている。どうやら会員だったときにコンテンツのURLを参照し,覚えられてしまったらしい。しかもA社が付けたファイル名は,「http://www.xx.co.jp/pic/1.gif」,「同2.gif」,「同3.gif」…という連番だった。ファイル全体の置き場所が類推できる体系である。元会員が目星を付けて「同10.gif」などのURLを打ち込むだけで,新しいコンテンツまで簡単に取得されてしまう。

図2 A社は退会後のユーザーからコンテンツを保護した
 A社は退会後のユーザーがコンテンツを取得できないようにするために,会員認証を実行するプログラムをCGIを使ってWebサーバーに作り込んだ。
 そもそもURLを入力するだけで取得できる場所にコンテンツを置いていたのが,A社の失敗の原因だ。そこでURLを打ち込んでも会員認証を経なければコンテンツにはアクセスできないように,WebサーバーのCGIを作りこんだ(図2[拡大表示])。

 まずユーザーは,CGIファイルにアクセスする。するとCGIプログラムがユーザー認証処理を実行。会員であることを確認すると,CGIプログラムは該当するコンテンツをデータベースから取り出し,ユーザーに配信する。会員でなければ携帯電話機にエラー・メッセージを表示し,コンテンツの不正な取得を防ぐ仕組みである。

暗号化するデータは小容量に

 個人情報をやり取りするB社は,通信途中での盗聴を警戒し,暗号化技術を導入することにした。

 モバイルECサイトの暗号化には二つの方法がある。(1)Webサーバーと携帯電話事業者のセンターとの間を,SSLで通信する方法,(2)携帯電話端末に電子証明書を発行し,Webサーバーと端末との間でSSL通信する方法――である。

 安全性は(2)の方が高い。(1)は無線区間で盗聴される可能性がある。これに対して,(2)は端末までSSLで通信しているので,無線区間のデータも暗号化されているからだ。ただし,電子証明書の発行を受けられる端末はまだ少ない。今のところNTTドコモの「503iシリーズ」だけである。そこでB社は(1)の方法を採用した。

 しかし,テストした途端に「ページ・サイズをオーバーした」というエラー・メッセージが携帯電話機に表示されてしまった。携帯電話事業者は1ページ当たりのサイズに制限を設けている。例えばNTTドコモは5Kバイト以下,J-フォンは6Kバイト以下である。B社のケースでは,暗号化したことでデータのサイズが大きくなり,この上限を超えてしまったのである。急きょ,1ページのデータ量を小さくすることによって対処した。