ユーザーエージェントの偽装とは? スマホサイトを PC で見る方法
この記事はプロモーションを含みます
この記事は最終更新から 1 年以上経過しています
スマートフォンでポイントサイトを見ると、スマートフォン版ポイントサイトに繋がることがあります。
アドレスは同じだというのに、PC 版サイトとは違うものが表示されます。どうしてでしょうか? これは、利用者がどの媒体でアクセスしているのかをサーバ側が把握し、その情報に応じたレスポンスを返しているからです。媒体が PC なら PC に、スマホならスマホに適した表示になるよう振分けられます。
ユーザーエージェントとは?
そのような情報を利用する際に用いられるのが「ユーザーエージェント (User agent、略して UA)」です。身近な例を挙げると、普段私たちがウェブサイトを見る時に使用しているブラウザが UA です。他にも、検索エンジンの登録データを収集するロボットなどが代表的な UA でしょう。
どの媒体でアクセスしているのかをサーバ側が把握できるのは、UA が自らの識別名をユーザーエージェント文字列として申告しているためです。ブラウザを UA と言うよりもこの識別名・文字列の方を UA と呼び慣らわしていることの方が多いかもしれません。以下この記事でも UA を識別名・文字列の意味で使うことにします。
ユーザーエージェントの偽装
さて、UA はこちらからの自己申告です。そのため、虚偽の申告をすればサーバ側はその虚偽の申告に合わせたレスポンスを返してきます。例えば Firefox を使っていて Internet Explorer の UA を申告するとします。結果、Internet Explorer で普通にアクセスした場合と同じ応答が返ります。このように別の UA の申告をすることを、「ユーザーエージェントを偽装する」と言います。
スマートフォンのブラウザも例に漏れず、UA 文字列を使用しています。サーバ側はその送られた情報で識別し、スマホサイトへユーザーを誘導するなどの振る舞いをしています。したがって、PC でブラウザの UA をスマホのものに偽装すれば、スマホサイトを PC 上から覗き見ることが可能になるのです。
UA 偽装方法
一部のブラウザには UA を設定できる機能が実装されています。Firefox では専用のアドオンをインストールすることで細かく編集でき、簡単な操作で切り替えることができるのでとても便利です。Chrome は標準でかなり詳細な設定をすることが可能になっています。以下、両ブラウザでの設定方法を紹介します。
Mozilla Firefox
「User Agent Switcher」というシンプルなアドオンが使いやすくてオススメです。ツールメニューやアドオンバーから UA をスイッチできます。使用頻度の高い UA は上掲画像の Nexus S Android(2.3.2) と iOS4 のように一番上の階層に出しておくのが良いでしょう。適用中はアイコンが水色に光ります。
Google Chrome
Chrome はデベロッパーツールから UA を設定できます。F12 キーなどでツールを立ち上げ、右下の歯車アイコンをクリックすると Settings 画面を呼び出せます。Overrides の設定項目で UA と Screen resolution (表示解像度) などを詳細に指定可能です。
「Enable on DevTools startup」をチェックすると、ツールを起動させるだけで自動的に Enable にチェックが入り、指定してある UA が適用されます。使用する UA が決まっているならここをチェックしておくと効率的です。
スマホ版ポイントサイトを PC から覗いてみよう
では、PC ブラウザの UA をスマホのそれに設定して、ポイントサイトにアクセスしてみましょう。以下は、Google Chrome で iPhone (iOS5) の UA を使って表示させています。横幅 640 のポートレートモードです。
モッピー
ログイン情報を持つ Cookie が PC と共通らしく、PC 版でログインしているとそのままログイン状態になるようです。
ライフマイル
かなりシンプルなスマホ版ライフマイル。
ハピタス
ハピタスはスマホ版サイトへ自動で振分けられませんでした。サブドメインでの運営になっています。
楽天市場
ポイントサイトではありませんが、スマホ版の楽天市場ももちろんきちんと表示されます。スマホから購入するとポイント何倍というキャンペーンの時、こうした UA 偽装で利用した場合にも対象になるというのはあまりにも有名な話です。
関連リンク
- モッピー
- スマートフォンサイトも充実。1p = 1 円の等価レート。PC 版と両方でポイントを貯められます