Blogger の国別ドメインリダイレクト対策コードを入れると、Cookie 無効 + JavaScript 有効なブラウザの環境下で無限リダイレクトする件
言われて、たった今知りましたので首釣ってきます。 (修正して、該当コードは削除しました)
以下に言い訳を記す。 (昔の話と思って再確認したら去年の話だったでござる)
いいわけ
Blogger って2012年から公式に特定国に対するコンテンツ非表示 が始まったわけだが、 そのためにアクセス元に応じてドメイン名が変わるという施策が導入された。
いまはガジェット類その他何も使っていないので関係ないが、
当時確か何らかの問題が発生したので、
下記コードを投入して、.com
にドメイン名を強制するようにした。
そういえば、暫定的な対処だった。
方法は簡単で http://ほげほげ.blogspot.jp/
→http://ほげほげ.blogspot.com/ncr/
にリダイレクトしてやると、
その後 http://ほげほげ.blogspot.com/
になるという作戦。
だが、これは標題の通り
- JavaScript を有効
- Cookie 無効(またはドメイン名指定での拒否)
で無限リダイレクトしてしまう。
ブラウザには、セキュリティ上の理由から HTTP-Redirect の無限リダイレクト制限はあるが、 JavaScript を介しているのでこれが効かない。
具体的には下記の通り無限ループする。 下記アクセスをした場合に攻撃者と見なされるかどうかは不明。
- まず
http://ほげほげ.blogspot.com/
にアクセス - NCR クッキーがないならば、国別ドメインにリダイレクト。日本からの場合は、
http://ほげほげ.blogspot.jp/
にリダイレクト - JavaScript が有効なので、コードが実行されて
http://ほげほげ.blogspot.com/ncr/
に転送 - Cookie が無効なので、NCR クッキーが発行されない。
- 2に戻る。
たぶん上の施策をするとしてもクッキーの有無(navigator.cookieEnabled
)を確認するべきであった。
ただしが、これでも blogspot.com
は許可していても国別ドメインの方は許可していないならば、やはり無限 redirect する。
参考文献
- ブログが国別の URL にリダイレクトされる理由 - Blogger ヘルプ
- Bloggerでblogspot.jpにリダイレクトされるのを防ぐ方法