Android GCM サーバの権限チェック機能を検証する[Android]
(2013-05-15 13:52:20) by shinoda


Android GCM のサーバ用の API キーの入手を行なう時、「Create new Server key」を選択する。

そうすると、その API キーを使用するサーバを IP アドレスで指定出来るので、セキュリティ上良いんですわ。

Accept requests from these server IP addresses の入力欄に、一行に 1IPずつ記入する。
うちの会社はインターネット上にテスト用のサーバを 3台持ってるんで、それらの IP アドレスを記入する。

こんな感じ。

181.XXX.XXX.105/32
213.XXX.XXX.127/32
124.XXX.XXX.122/32

1台ずつの設定なので 32ビットのネットマスクをかけているが、複数のサーバを指定することも出来る。
その時は、

221.XXX.XXX.0/24

みたいに設定するわけですわ。

で、この IP アドレス以外のサーバから、GCM サーバにメッセージを送信してみた。

本来なら、id=0:1368593107767685%921c249ace0038c9 みたいなメッセージIDが返ってくるんだけど、

$ ./gcm_message_send.pl
<HTML>
<HEAD>
<TITLE>Unauthorized</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1>
<H2>Error 401</H2>
</BODY>
</HTML>

という具合に、401 Unauthorized エラーの HTML ソースが返ってくる。

GCM サーバ(https://android.googleapis.com/gcm/send)を閲覧する権限が無いってわけだな。

バッチリじゃん!

コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8