ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3982071 WEBのクッキーとセッションは、クライアント側で変更できるのでしょうか?
質問者:sevenkaeru クッキーとセッションについて教えてください。
(例として使用している言語はphpです。)

オートログイン機能用に、IDとパスワードの情報をクライアント側のクッキーに保存してもらい、
指定のサイトをブラウザで開いたらクッキーから情報を読み込み、
該当したらログイン用のセッションにサイトに入れるフラグを入れるとします(たとえば$_SESSION["login"]="on")。

この場合、セッションの[login]の値が"on"なら、ログインできるのですが、
ブラウザ自体の機能やUNIXのプログラム等にセッションの値自体を変更する何かしらの方法があり、
IDとパスワードをしらなくてもセッションの[login]を"on"にしてログインされてしまうということはあるのでしょうか?

また、今回の処理でクッキーを読み込む際、変数に一度格納している(例:$id=$_COOKIE["id"])のですが、
この場合でも、別ドメインのサイトに行った際IDやパスワードがログとして表示されてしまうのでしょうか?
(セッションは別ドメインのサイトにリンクした際、飛び先のドメインでも並文としてログが表示されてしまうらしいので)

教えていただけるようお願いします。
困り度:
  • 困っています
質問投稿日時:
08/04/28 12:57
この質問に対する回答は締め切られました。
最新から表示回答順に表示

回答

ANo.2 >有効なhttpセッションを盗み見る必要もなく
>httpでセッションの[login]を"on"として投げて
>サイトに入る等ということも可能なのでしょうか?

それは出来ません。セッションの場合、クライアントからサーバへは「セッションID」だけを投げます。普通はCookieを使いますが、Cookieの名前(defaultではPHPSESSID)は設定で変えられます。そのセッションIDに対応するデータを“サーバ側で”保持していますので、無効なセッションIDでは意味を為しません。単なるCookieとの違いはここにあります。

セッションハイジャックということもありますが「そこまでして破りたい」サイトでなければセッションでじゅうぶんということも言えます。

こちら↓あたりが参考になると思います>セッション。

  ​http://www.stackasterisk.jp/tech/php/php03_06.jsp
回答者:shimix
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:
08/04/28 16:25
この回答へのお礼メールアドレスさえ保持しない、ユーザーが適当なIDとパスワードを付けて使用するサイトなので「そこまでして破りたい」サイトにならないですね。
SSLもただ重くなるだけっぽいのでセッションだけでやっていこうと思います。
教えていただいたアドレス含め大変勉強になりました!
ありがとうございます!

回答

ANo.1 Cookieは改変(というか捏造)は可能です。普通のブラウザでやろうとすると大変でしょうが、自前でhttpリクエストを投げることが出来る程度の知識があれば出来ます。

#このあたりはHTTPのやりとりを見ればわかると思います。

セッションを使えば「サーバ側で活きているセッションID」でなければ意味がなくなりますので、難易度は高くなります(それでも他のhttpセッションを盗み見ればハイジャックできなくもありません)。

それ以上のセキュリティが必要ならSSL(https)を使うことになります。というかCookieやセッションに「大事なもの」を任せてはいけません。ちゃんとSSLを使いましょう。

#当然、大事じゃないものなら非SSLでもノープロブレムです。そのあたりをキチンと判断してください。
回答者:shimix
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:
08/04/28 14:42
この回答への補足返答いただきありがとうございます。
Cookieの捏造は出来てしまうのですね...

すみませんが、もう少し質問させてください。

phpで$_SESSION["login"]=="on"の状態だったら
ログイン用IDやパスワードがなんであれログイン出来てしてしまうページの場合
有効なhttpセッションを盗み見る必要もなく

httpでセッションの[login]を"on"として投げて
サイトに入る等ということも可能なのでしょうか?

(ちなみにSSLはレンタル先の共有SSLを使用する予定ですが、
重くなるのでログインページのみに使用するつもりでいます。
メールアドレス等の個人の情報は一切貰わず、適当にIDとパスワードを決めてもらって
その個々人用に画像と簡単なログを付けれる簡単なSNSのようなものを作る予定です。)
この回答へのお礼↑すみません。お礼の筈が補足の欄に書いてしまいました。
 
最新から表示回答順に表示