SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

携帯サイトのUserAgent偽装対策

携帯実機以外でのアクセスを許さない


  • このエントリーをはてなブックマークに追加

携帯サイトに対するアクセスを、IPアドレスを制限することにより携帯実機のみに制限する方法を紹介します。

  • このエントリーをはてなブックマークに追加

はじめに

 携帯サイトは、アクセスしてくる端末の機種をUserAgentで判別します。しかし、UserAgentは容易に偽装できるので、携帯実機以外からのアクセスを正確には判別できません。

 本稿では、IPアドレス判別を併用して携帯実機以外からのアクセスを締め出す方法を紹介します。

対象読者

 携帯サイトの開発者。

携帯の機種判別の問題

 携帯の機種判別にはUserAgentを用います。しかし、UserAgentは容易に偽装できます。つまり、携帯サイト側で、アクセスが本物の携帯端末からのものであるかどうかを判別することはできません。UserAgentを偽装したDos攻撃などの不正アクセスに対して、対策を講じる必要があります。

携帯のIPアドレスとは?

 携帯は通信会社の中継サーバを経由し、携帯サイトにアクセスします。携帯サイトから見ると、通信会社の中継サーバがアクセスしてきたように見えるわけです。

携帯はキャリアの中継サーバを経由する
携帯はキャリアの中継サーバを経由する

 中継サーバは特定のIPを持ちます。通信会社はこれらの情報を公開しています。

 IP情報は日々更新されています。チェックを怠らないでください。

 これらの情報に基づいて、アクセスしてくるIPアドレスを制限します。IPアドレスを偽装することはできません。それゆえ、IPアドレス制限を通ったリクエストのUserAgentは、間違いなく携帯実機のものだと考えて良いわけです。

CIDR

 IPアドレス帯域は、例えば以下のように表記されています。

IPアドレス帯域の表記の例
210.153.84.0/24 

 これをCIDR表記と呼びます。最後の/24はどういう意味でしょうか?

 IPアドレスは32ビットで表します。24とは先頭から24ビットは固定、残りの8ビットが可変という意味です。つまり、IPの範囲は以下のようになります。

210.153.84.0/24の範囲
210.153.84.0 ~ 210.153.84.255

IPアドレス制限をどこで行うか?

 IPアドレス制限を行うポイントは、以下の2つです。

IPアドレス制限を行うポイント
IPアドレス制限を行うポイント

 不正なアクセスをアプリケーションサーバまで到達させてはいけないので、ルータかWebサーバで制限することになります。できるだけサーバの負担を軽くするためには、ルータで制限した方がいいでしょう。

 (2008/05/07 訂正:誤「ルータで制限」⇒正「ファイアウォールで制限」

まとめ

 IPアドレス制限によって、携帯実機以外からのアクセスを制限する方法を説明しました。しかし、どこまで制限をきつくするかはサイトの目的を考慮してください。情報提供系のサイトでは想定外の端末、例えばiPhoneやPDAなどからのアクセスは許可してもよいのではないでしょうか?サイトの目的を損なわない程度に、セキュリティとのバランスを考える必要があります。

参考資料

  1. IPアドレス(ウィキペディア)
  2. IPアドレスについての解説。
  1. ユーザーエージェント(ウィキペディア)
  2. ユーザーエージェントについての解説。
修正履歴

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

佐藤 龍之介(サトウ リュウノスケ)

某SIer にて、主にWeb系開発プロジェクトに従事。 趣味はラーメン食べ歩き。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2389 2008/09/05 11:10

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング