Android GCM のサーバ用の API キーの入手を行なう時、「Create new Server key」を選択する。
そうすると、その API キーを使用するサーバを IP アドレスで指定出来るので、セキュリティ上良いんですわ。
Accept requests from these server IP addresses の入力欄に、一行に 1IPずつ記入する。
うちの会社はインターネット上にテスト用のサーバを 3台持ってるんで、それらの IP アドレスを記入する。
こんな感じ。
181.XXX.XXX.105/32213.XXX.XXX.127/32124.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)を閲覧する権限が無いってわけだな。
バッチリじゃん!
コメントする