aoyama

2014.03.10

iOS7.0.4でSSL領域のBasic認証時にSafariがフリーズする

どーも、青山です。

開発合宿ではAnglarJSに挑戦したりしたんですが、ブログ記事にできるようなネタがありません。

そこで、今回は最近出くわして、困った現象について共有したいと思います。
つまり、あんまり技術に関連した内容といった感じではなく、小ネタです。

現象

下図のようにBasic認証をかけたサイトにiOS 7.0.4 のSafariでアクセスし、Basic認証を解除した後、
アクセスします。
アクセスしたページにある、同一ドメインのSSL領域へのリンク(別タブでの表示)をクリックすると…
Safariがフリーズ!
ページのコンテンツも表示されず、新規タブが白いまま固まります(ビックリだね!)。

固まったよ。

自分で、現象を確認できれば、まだましなのですが、Basic認証をかけて検証している時というのは、
だいたい自分以外の誰かに、確認を依頼している時が多いと思います。
そんな時に

iPhoneでみるとおかしいんだけど、なんで?

といった報告を受けるわです、困ったもんですね。

そこで、検証を開始したiPhoneのiOSのバージョンが7.0.3とかだったりすると
再現しないわけです。
当然、Android端末でも発生しません。

対処方法

原因はよくわかりませんが、明らかにバグっぽい挙動です。しかし、サイトには問題ありません。
それを理解してもらうためには、Basic認証が問題なんだよってことがわかるようにすればいいのです。

そこで、下図のように、SSL領域に先にアクセスしてBasic認証を解除してやれば問題ありませんでした。
なぜかは、わかりません。
no-freeze

これで、「iOS 7.0.4が悪いから、とりあえずOSアップデートしてから見てね。」とかいう無理なお願いをしなくて
済むのではないかと思います。

といった感じで、こんな情報を誰が調べるのかな?とは思いますが、自分のように、この現象に
出くわしてしまった人のお役に立てればと思います。

最後に

アライドアーキテクツでは、一緒に働いてくださる仲間を募集しています。
iOSのバグだろうが、勘違いだろうが、少ない情報からでも、冷静に対処してくださる方は大歓迎です!。
興味のある方は是非、こちらからご応募ください!。

ご応募お待ちしております。