IEでクッキー書き込みできない件


         ,. -‐””'””¨¨¨ヽ
         (.___,,,… -ァァフ|          あ…ありのまま 今 起こった事を話すぜ!
          |i i|    }! }} //|
         |l、{   j} /,,ィ//|       『InternetExplorerで開発中サイトの管理画面にログインしようと
        i|:!ヾ、_ノ/ u {:}//ヘ        思ったらいつのまにかログイン画面に飛ばれされていた』
        |リ u’ }  ,ノ _,!V,ハ |
       /´fト、_{ル{,ィ’eラ , タ人        な… 何を言ってるのか わからねーと思うが
     /’   ヾ|宀| {´,)⌒`/ |<ヽトiゝ        おれも何をされたのかわからなかった…
    ,゙  / )ヽ iLレ  u’ | | ヾlトハ〉
     |/_/  ハ !ニ⊇ ’/:}  V:::::ヽ        頭がどうにかなりそうだった…
    // 二二二7’T” /u’ __ /:::::::/`ヽ
   /’´r -―一ァ‐゙T´ '”´ /::::/-‐  \    セッションの設定だとかブラウザのゾーン設定だとかプライベートモードだとか
   / //   广¨´  /’   /:::::/´ ̄`ヽ ⌒ヽ    そんなチャチなもんじゃあ 断じてねえ
  ノ ‘ /  ノ:::::`ー-、___/::::://       ヽ  }
_/`丶 /:::::::::::::::::::::::::: ̄`ー-{:::…       イ  もっと恐ろしいものの片鱗を味わったぜ…

 

 事件は夏の暑い日に起こった。
 テスト機に上げ、大詰めのシステムテストを行っていたさなか突然メッセンジャーの受信を告げる音が鳴る。
 <IEで管理画面入れますか?>
 そんな馬鹿な。
 サーバの設定差異は既に調査している。ましてやブラウザ互換などその前のテストフェイズで確認済みなはずだ。
 聞くとセッション切れ時のメッセージと共にログイン画面へ飛ばされると言う。
 早速確かめてみるとたしかに何度やってもログインできない。バージョン6、7、8いずれも同じ現象。他のブラウザは入れるのである。
 別のプロジェクトとして切り分けられている利用者側も入力情報が保持されていないので、セッションに問題がある事は容易に予想がついた。
 アドレスバーに

javascript:document.cookie;

と打ち込みEnterを叩いてみると何も表示されない。
 これはクッキーが入っていないかセキュアフラグの付加されたクッキーを非SSL時に見た時に起こる。
 私は念のためphp.iniに設定がないことを確認し、.htaccessのクッキーセキュアフラグをoffにした。

php_flag session.cookie_secure off

 ブラウザのクッキーも削除し、再度管理画面へログインするがやはり結果は同じ。
 (さてはIEまた何かやらかしたか)
 疑いとわずかな期待を抱きつつグーグル先生で検索をかけてみる。
 最初は今回の件とは関係のない問題があがっていたがキーワードを色々変えているうちにこんなものを見つけた。

http://support.microsoft.com/kb/316112/ja
 

原因
セキュリティ修正プログラム MS01-055 では、不適切な構文を使用した名前のサーバーは Cookie 名を設定できません。Cookie を使用するドメインでは、ドメイン名およびサーバー名に英数字 (“-” または “.”) だけを使用しなければなりません。サーバー名にアンダースコア (“_”) など、その他の文字が含まれている場合、Internet Explorer は Cookie をブロックします。
 

ASP のセッション状態とセッション変数の機能は Cookie に依存しているため、クライアント上に Cookie を設定できない場合、ASP は要求間でセッション状態を維持できません。
 

この問題は、ホスト ヘッダ内の不適切な名前構文が原因の場合もあります。
 

解決方法
この問題を回避するには、次の方法のいずれかを使用します。
•   ドメインとサーバーの名前をを英数字だけを使用する名前に変更する。
•   ドメイン名やサーバー名ではなく、インターネット プロトコル (IP) アドレスを使用してサーバーを参照する

 どうやら原因はサブドメインに「_test」を付けてテスト環境を作っていたからで、ドメイン名の中のアンダースコア(検索用:アンダーハイフン)はRFC規約違反らしい。
 報告してドメインを変更してもらうとIEでも問題なくログインできるようになった。
 プロジェクト周辺の人はだれも知らなかったので実は知らない人割と多いのではないだろうか。
 クライアント側の仕様を把握しきれていないのがwebの怖いところだと私は思う。

みんなも気を付けてね。

2 Responses to “IEでクッキー書き込みできない件”

  • 開発屋:

    アンダーバーがだめだとは・・・・・
    知らなかった^o^

  • +pikari:

    >開発屋さん
    他のブラウザは大丈夫っていうがクセモノですよね。

Leave a Reply

You must be logged in to post a comment.