あるWebアプリケーションを作っている際に、クッキーをどうしても保存できないというトラブルに遭遇ししました。調べていくと、全く同じスクリプトを別ホストに設置すると正常に保存できることが確認できたので、どうもホスト名に問題がありそうです。ということで正常にクッキーを保存できるホスト名とできないホスト名を眺めていると、ある違いに気づきました。そう、クッキーを保存できないホスト名には"_"(アンダースコア)が含まれていたんです。。アンダースコアってRFCが定めるホスト名のガイドラインに違反している文字列なんですね。そういえば、このサイトのドメインを取得する際、「hori-uchi.com」にしようか、「hori_uchi.com」にしようか悩んだんですが、「hori_uchi.com」はドメイン登録できなかったような記憶がうっすらあります。。
話をクッキーにもどしますが、IE5.01SP1以降ではRFCに準拠しないホスト名からクッキーはセキュリティの観点から保存しないようになっているようです。
こちらに詳しい情報がまとめられています。
それによると、
このIEのセキュリティパッチは、悪意あるWebサイトが他のWebサイトのCookieを取得できる脆弱性を排除するためのもので、IE5.01SP1以降のリリースのIEリリース、SPに含まれます。
このパッチを適用すると、以下のいずれかに該当する場合、cookieはブラウザに保存されません。
- URLのホスト名が、RFCのドメイン名のガイドラインに違反している文字を含む場合("_"など)
- URLに正しいドメイン名の記述がない場合
3.- ドメインの記述に一つ以上のピリオドが含まれていない場合
ということだそうです。RFCにはきちんと目を通しておかないといけませんね。。
0 件のコメント:
コメントを投稿