プロが教えるわが家の防犯対策術!

どうにも困ってしまい初めて質問させていただきます。

現在、ASP.NET MVC 2.0で運用保守しているモバイル会員向けのサイトがあります。
従来のWeb.Configは
<sessionState mode="InProc" timeout="30" regenerateExpiredSessionId="true" cookieless="true"/>
のようにしており、URLにセッションIDが表示されるように設定されていました。

これがセキュリティ上問題ということで、ログインの前後でセッションIDを変更することになり、
ログイン処理時に
Session.Abandon();
を実行して、セッションを破棄して、ログイン後のページでセッションIDが変更するようにしており
これはうまく想定通りにいっていました。

その後、最近スマフォのアクセスの方が増えてきたこともあり、極力URLにセッションIDは表示したくないということでWeb.Configを以下のように変更しました。
<sessionState mode="InProc" timeout="30" regenerateExpiredSessionId="true" cookieless="AutoDetect"/>

スマフォやPCからのアクセスでは想定通りURLにセッションIDが表示されることもなく、
ログイン前後でセッションIDが変わりました。
しかし、クッキー非対応の携帯で確認すると、URLに表示されるセッションIDが
ログイン前後で変更されなくなってしまいました。
iモードシュミレータを使いデバッグ実行で直接セッションIDを確認しても、
やはり変わっていませんでした。
AutoDetectでクッキー非対応の端末でセッションIDを変更する方法はあるのでしょうか?


いろいろ調べたのですが直接関係するような内容は見つけることができず、
質問させてもらいました。
よろしくお願いします。

A 回答 (1件)

AutoDetectの説明としてこんなのがありますね。


http://www.atmarkit.co.jp/fdotnet/aspnetmobile/a …

で、ここで「ブラウザをデバイス・プロファイルで識別した結果による。」というのがくせもの。
デバイス・プロファイルってなんだ?という話になってきます。
で、その実体は、と。。。
http://www.atmarkit.co.jp/fdotnet/aspnetmobile/a …
このあたりかな?

ブラウザ定義ファイルというのがありまして、、、と
で、この定義ファイル、、、当初は便利だったんですが、その後とくに日本の携帯に対応した形でのメンテナンスがされてない、はず。
この定義ファイルにうまくひっかからないと想定していない動きになってもおかしくないです。

まあ、もしかすると本当の原因はここじゃないのかもしれませんが、このあたりをきちんとおいかけないとASP.NETが各種の端末にたいしてどう動いているかは判断できません。

携帯というかフィーチャーフォン、ですか。
それ向けにはもとのとおりcookieless="true"としたページを提供して、PC/スマホ向けには別のページを提供する、というのが現実的な解なのではないかと考えています。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
ブラウザ定義ファイルというのは大変参考になりましたが、
本件とは関係がなさそうです。
やはりガラケーとスマフォ向けは分けるしかなさそうですね。
その方向で検討したいと思います。

お礼日時:2013/03/28 09:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!