No.2ベストアンサー
- 回答日時:
どもです。
がるです。以下補足お願いします。
> 1.に関して
> 具体的にCookie値の文字列操作で可能なのでしょうか?
大まかに二種類手段がありまして。
一つは「セッションIDを格納する場所に属性を付与する」パターンです。
この場合、例えばCookieに
s=abcdefg
とあったときに、セッションID"abcdefg"が「ログイン認証の意味を持つセッションID」なのか「登録用のためだけのセッションID」なのかを、セッションIDを保存している場所(通常はDBが多いかと思われますが時にテキストファイルなどであるケースもあるかと思います)に明記しておきます。
もう一つは「Cookieのnameを変える」パターンです。
この場合、例えば「ログイン認証の意味を持つセッションID」をsl=で、「登録用のためだけの」場合をst=で、などという風に切り分ければOKです。
なおものすごく念のため、なのですが。Cookieに入っているセッションIDっていうのは「一時的に生成された、ユーザIDを推測することが出来ないランダムな文字列」でOKですよね?
> 2.クライアントキャッシュではなく、キャッシュサーバーに依存する事例でございます。説明不足でした。すみません。
> 遷移元が静的HTMLで、あるHrefタグより遷移するとCookie認証ではなく前のキャッシュされた画面が表れるという現象です。この現象を回避すべく方法をお願いします。
えっと…ちょっと現象の想像がつかないのですが。
差し支えない範囲でよいので、以下の補足をお願いしたく思います。
「Hrefタグより遷移すると」Aエレメント、だとおもわれるのですが。どのようなhrefアトリビュート値になりますでしょうか? また、JavaScriptなど併記されていたらそれも貼り付けていただけるとありがたいです。
「前のキャッシュされた画面」とは、どのような画面を指すのでしょうか?
当初の質問と融合して予想すると
ある静的なHTMLから動的なPageへ遷移するためのリンクがある。
そのリンクをクリックして遷移すると、希望としては「Cookie値を元に認証を行い、該当ユーザの情報が出力されるPageに遷移する」という挙動になって欲しいのだが、実際には「以前にそのPageへ遷移したユーザの情報(動的に生成したHTML)が残っており、現在アクセスしているユーザのCookieを基にした情報ではなく、過去にアクセスしたユーザのCookie値を基にしたHTML(サーバにキャッシュされたHTML)が出力されてしまう」。
というニュアンスでよろしいでしょうか?
この場合単純にプログラムのつくりの問題かと思われます。
動的に生成したHTMLのキャッシュは、よっぽどの事情がない限り避けたほうが賢明ですし、どうしてもされる場合、徹底的な設計が不可欠かと思われます。
以上、参考になりましたでしょうか?
No.1
- 回答日時:
がると申します。
取り合えず端的に。
1.会員登録中でブラウザの「戻る」をするとCookieが取れてしまっているため、会員になれてしまいます。
基本的にはCookie発行タイミングの問題だと思うのですが。
後は、登録画面の遷移で「入力画面が複数」とか「確認画面がある」場合に多いのですが。「正規のユーザがログインしたことを意味するセッションID」と「登録時にユーザを一意に認識するためのセッションID」は厳密に切り分けて設計するとよいと思われます。
2.また静的HTMLから画面遷移するとキャッシュされてしまって前の会員の情報が見れてしまいます。
このキャッシュとは「クライアントキャッシュ」でよいですよね?
基本的には「レスポンスヘッダに"キャッシュしない"指示を付け加える」事である程度問題が回避できます。
具体的には
Expires: 0
Pragma: no-cache
Cache-Control:no-cache
の3つのヘッダを付け加えてください。これで、概ねどんなブラウザでも認識が出来るかと思います。
以上、参考になりましたでしょうか?
この回答への補足
早々のご回答ありがとうございます。
以下補足お願いします。
1.に関して
「正規のユーザがログインしたことを意味するセッションID」と「登録時にユーザを一意に認識するためのセッションID」は厳密に切り分けて設計するとよいと思われます。
具体的にCookie値の文字列操作で可能なのでしょうか?
2.クライアントキャッシュではなく、キャッシュサーバーに依存する事例でございます。説明不足でした。すみません。
遷移元が静的HTMLで、あるHrefタグより遷移するとCookie認証ではなく前のキャッシュされた画面が表れるという現象です。この現象を回避すべく方法をお願いします。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ポイントサービス・マイル ポンタポイントの登録の仕方を教えてください 1 2023/01/19 22:56
- PHP sessioncookieをではなくcookieを使わなければならない理由について… 4 2022/11/07 13:01
- Facebook FACEBOOKのアカウント乗っ取りについて 1 2022/05/06 06:36
- Chrome(クローム) Cookieを削除 他サイトでの自動ログインなどの設定も削除されますか パソコン クロームです 1 2022/09/10 21:47
- gooポイント gooポイントをdポイントに交換できない。 3 2022/04/22 20:39
- 格安スマホ・SIMフリースマホ SMS認証用の電話番号が欲しい 6 2022/06/12 18:21
- ZOZOTOWN 英語教材の購入ができません。 3 2022/05/03 08:57
- その他(悩み相談・人生相談) 個人情報の削除に関して 2 2023/04/12 17:53
- ライフスタイル・ヘルスケア サービスカウンター対応 4 2022/10/19 12:06
- その他(ブラウザ) 最近、いろいろなブラウザでログインができません。 2 2022/03/29 00:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA 別のブックのユ...
-
HTTPリクエストヘッダーの設定...
-
ASPで画面間のパラメタ受け渡し
-
オートマトンNFAからDFAへの変換
-
画面遷移が不正ですと表示されます
-
c# 文字列の最後から1文字削除...
-
コネクション・セッション・ト...
-
getParameterで値が取得できず...
-
DataGridViewのチェックボック...
-
INPUTのボタン周囲のスペース
-
HTMLボタンの文字色を変え...
-
JSPでメッセージボックスを表示...
-
ボタンをクリックした時に、入...
-
Webページ上のボタン等の位置を...
-
VBAで一時中断したプログラムの...
-
aspxをhtmlに変換する方法について
-
ページングが大量発生する原因...
-
セッションIDを取得したい
-
ポストバック時の画面スクロー...
-
複数選択のListBoxでClickイベ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面遷移が不正ですと表示されます
-
ASPで画面間のパラメタ受け渡し
-
HTTPリクエストヘッダーの設定...
-
【ASP.NET】ページ遷移してもGr...
-
エクセルVBA 別のブックのユ...
-
オートマトンNFAからDFAへの変換
-
スマホで、左右にスワイプして...
-
セッション変数への値の代入方...
-
ASP.NET による画面遷移で質問...
-
【ASP.net】リンク押下時に次の...
-
VB.NET 画面遷移
-
request.QueryStringについて
-
PowerPointのボタンにマクロ設定
-
java scriptはseo的には影響な...
-
unityでクイズゲームを作ってい...
-
POSTだけして、ページの移動を...
-
VB.NETのWebアプリケーション開...
-
ASPとASP.netの連携について
-
Request Header の追加
-
Access2013 VBA 複数の画面の遷移
おすすめ情報