ユーザエージェントを偽装して遊ぶためのTips

Rev1.0:2010/03/14/Rev2.0:2013/03/29/Rev3.0 2014/03/07/Rev4.0 2014/12/28

基本的に私のサイトでは偽装系のUAはアクセス拒否していますけど、時々面白いヤツがある。

この辺のなんて、コテハンみたいですね。

ただ、お願いしたいのは、直に非ASCII文字を設定しているアホたれはマナー違反な感じがするのでやめて欲しい。


以下、そのためのお作法。

IE10の場合

[Ctrl]+[F12]で「開発者ツール」を開く。

IEのF12デベロッパーツールの画面その1

あらかじめユーザエージェントが幾つか用意されているが、「カスタム」を選択する。

IEのF12デベロッパーツールの画面その2

上の図では「ユーザーエージェント文字列」に半角英数字以外を入れてしまっている。
これではエラーになってしまう。

なお、「フレンドリ名」というのは、メニューに出す文字列なので、特に使用文字の制限はありません。

IEのF12デベロッパーツールの画面その3

ほらね? エラーになった。では、どうすれば良いか?

そこで、文字列全体を[これ]に貼り付け、「非ASCII文字→&#x16進;」ボタンで変換します。
注意! 下の赤い枠で囲って置いたボタンです。 緑色の枠で囲った「EncodeURI」ボタンではありません。

JSCharacterEncoderのボタン 

元の文字列を作るときの注意:任意の半角文字列半角/半角数字列半角ドット.半角数字半角スペース半角丸括弧開き(任意の文字列半角セミコロン;半角スペース任意の文字列…+半角丸括弧閉じ)とします。

半角/が来て、その直後にバージョンの数字を必ず小数点付きで付与する。

そうしないと、相手側に「&#数字」の切れ端が表示されるなど、エラーで表示されることが多いです。

IEのF12デベロッパーツールの画面その4

変換後の文字列:SDF/1.0 (超時空要塞 MACROSS; 2009; おぼえていますか)を、上図のように貼り付けて、「設定」ボタンを押します。

実行結果は以下の通りです。ユーザエージェント名は変更できていますが、IEでは、ブラウザ名の詐称までは不可能のようです。

IEのF12デベロッパーツールの画面その5実行結果

既にある設定を修正したい場合は、画面上部で既存のものを選択して画面下部に呼び出し、修正を加えてから「更新」ボタンを押します。

「更新」ボタンを押してから、「設定」ボタンで編集メニューを終わらせないと、設定の修正は反映されません。

IEのF12デベロッパーツールの画面その6(終わり)


IE11の場合

単独の[F12]キーで「開発者ツール」を開く([Ctrl]+[F12]ではない)。

あとの操作は、上に書いたIE10と大体は同じなので、画面例だけを掲載する。

IE11のF12開発者ツールの画面例その1

右端の「エミュレーション」タブを開く。

IE11のF12開発者ツールの画面例その2

「モード」でIEのバージョンを変更できる。

IE11のF12開発者ツールの画面例その3

「ブラウザプロファイル」では「デスクトップ」と「WindowsPhone」のみを選択できる。「iPhone」などはない。

IE11のF12開発者ツールの画面例その4

「ユーザーエージェント文字列」の所でIE10やXboxやChoromeやFirefoxやOperaやSafari(iPad)やBingBotを選択できる。

「ドキュメントモード」の所で設定するIE10相当(など)と、「ユーザーエージェント文字列」の所でIE10相当(など)との組み合わせが、一体どういう意味なのかは、疑問に思う人が多いと思う。

気になったら、実際に組み合わせてUAがどう変化するかを確認して、一覧表にまとめてみれば良い。ご自分でどうぞ。

なお、UA文字列にはセガサターンやPlayStationやGoogoleBotなどは用意されていない。

でも、「カスタム」に書き込めば、その指定通りになる。

 IE11のF12開発者ツールの画面例その5

非ASCII文字列は、「&#x16進;」形式にエンコードしないとダメです。

IE11のF12開発者ツールの画面例その6

マウスオーバーをすると、入力した長い文字列がポップアップ表示されます。

IE11のF12開発者ツールの画面例その7(終わり)

削除したい場合は右側に出る「×」を押します。


IE8,IE9の場合

Bayden UAPickを入れる。


Forefox 19.xの場合

"User Agent Switcher"をインストールする。

"User Agent Switcher"のEditで偽装UAを新規作成する。

日本語文字列など非ASCII文字を含む場合は、[これ]で文字列全体を「非ASCII文字→&#x16進;」にエンコードする。

なお、末尾の改行を削除してから変換しないと改行までエンコードされてしまうので注意。

上記の「UA Header 文字列」に該当する"User Agent"や「Browser Version」に該当する"App Version"の部分を書き換える。


Safari 5.1.xの場合

ウィンドウ右上にある[歯車アイコン]→[設定]→[詳細]タブ→[メニューバーに”開発”メニューを表示]をONにする。
これで[歯車アイコン]の【隣】にある[メニュー]に「開発」が追加される。

次いで、[メニュー]→[開発]→[ユーザーエージェント]から切り替える。

あらかじめユーザエージェントが幾つか用意されているが、そこに、上と同様、[これ]で文字列全体を「非ASCII文字→&#x16進;」にエンコードしてから書き込む。


Google Chrome23.xの場合

[Ctrl]+[Shift]+[C]で「デベロッパーツール」を開いて、歯車アイコンの所でOverride User Agent(上書き)する設定にする。

あらかじめユーザエージェントが幾つか用意されているが、Otherの所に、上と同様、[これ]で文字列全体を「非ASCII文字→&#x16進;」にエンコードしてから書き込む。

但し、これが有効になるのは「デベロッパーツール」を開いている間だけ。


Opera 12.xの場合

拡張機能「Drafonfly」がデフォルトで入っている。[Ctrl]+[Shift]+[C]キーで開いてゴニョゴニョする。


Opera 15.x以降の場合

デフォルトのメニューから変更できるかどうかを頑張って探す。

もし、メニューにない場合は、Opera15からはレンダリングエンジンがGoogle Chromeと同じになったので、ChromeやChronium関係の機能拡張を探すと良いんじゃないかな。


ただし…

UAの変更は、本来は、「携帯対応サイト」や「スマートフォン対応サイト」の構築で、Web開発者が「見た目が思い通りになっているか?」を確認する時に使います。

例えばソフトバンクの端末についてはこことかここに情報があります。

auだと、こことか。このPDF(約3MB)の23ページ49ページに情報があります。

docomoだとこことかこことかここら辺に情報があります。

携帯・モバイル端末でのアクセスだと、位置情報とか、場合によっては機体の固有番号も送信するんですよね~。

「機体の固有番号」ってことは、「個人の識別」()も可能だってことですね。

※個人の実名や電話番号そのものを特定できるわけではありません。(が、かなり色々わかることも確かです。下記余談も参照。)

 

アクセスログに関連した余談

拡張共通ログフォーマット(Apache Combined Log Format)の生ログは、大体以下のような内容で記述される。

逆引きした接続ホスト名(またはIPアドレス) - - [接続時間 +タイムゾーン] "処理 要求ファイル プロトコル" ステータスコード データサイズ "接続元アドレス" "ユーザーエージェント" "-"

さて、暇つぶしに生ログを全行目視で確認。
ある日のアクセス(但し、*の部分は伏せ字にした。)

MS-14_Gelgoog

ん?
んんん?
……ブハっ!

なんじゃこのサブドメイン。

零細ソフトハウスかなぁ…と、ドメイン所有者をWHO ISして二度びっくり。

「我が国の防衛産業はMS-14A開発を目指すのだ!」という壮大な決意表明と受け止めました。F-35も頼んだぞ!

サーバの名前を考えるのって結構面倒なんでしょうね…。センスも問われるし。

その昔、DTIは惑星名シリーズでした。上のアクセスはきっと、14台目のサーバなんでしょう。

知人が勤めていた某IT系企業は担当者の趣味が釣り(あ、だからフッシィング…あこれでも意味が違う…要するに海でやる行為の方です)であるため、サーバが魚シリーズで、社内でカンパチサーバがどうしたとかの会話が日常化していたという。
鯖サーバがあるかは聞きそびれたけど。

mail_subdomain

lgは韓国の金星財閥の方のLGグループではなくて、ローカル・ガバメントの意味。日本の地方公共団体のドメイン。通称LG WAN。

lgの直前に具体名が入って、その前に県の場合はprefとか市の場合はcityとか、市町村都道府県の区別が入る。

こんな風に、アクセス元のサブドメイン名にmailとかpop3とかsmtpとか含まれているということは、メールサーバと共用しているのでしょう。

IISサーバとかなのかなぁ。

「そんな装備で大丈夫か?」と少し心配になるかもしれませんが、限られた予算でのやりくりも大変なのでしょう。

業者が「心配ない。」って言えば、まぁそんなもんかと思うしかないでしょうし。

なお、どの役所でも、住基ネットだけは、特別な専用回線で繋いでいるそうです。


偽装UAの例(平安朝風)

偽装が上手く行ったかどうかのテストは、こことかこことかここなどアクセスして「HTTP_USER_AGENT」の項目を見る。


偽装UAの例(平安朝風)

ブラウザ名
ここに変更は、結構大変です。
ツールの対応状況によります。
Narihira Explorer
UA Header 文字列
ここを「&#x~;」で設定しておく
IseMonogatari/1.0 (compatible; MSIE 8.0; Windows NT 5.1; 覗きじゃありません。垣間見ですよ。か・い・ま・み。平安初期からの伝統的文化です。タイホしないでください。)
Browser Version
ここに半角英数字以外を入れるのは結構大変です。
ツールの対応状況によります。
IseMonogatari/1.0
Browser Code Name Mozilla
Minor Version undefined
ユーザのOS/ブラウザの駆動モード
(x86版なら32、x64版なら64と表示)
Win32
ユーザのCPUクラス/ブラウザの駆動モード undefined
ブラウザで設定された言語 undefined
OSのデフォルト言語 undefined
OS で設定された言語 undefined
Cookie の使用可否 true
現在オンラインか true

[Go to top page]

copyright 2010~ 谷本玲大
http://www.tanimoto.to/