• ベストアンサー

セッションIDについて

セッションIDの認証機能についてですが、 IDとパスワードを自動認証しているページで、 セッションID収集し、書き換えると 自動認証ができなくなると思ったのですが、 なぜか、実際にはできてしまいます。 具体的には、 IECookiesView v1.70にて、 クッキーの中のセッションID (たとえばアマゾン)情報を編集して、 再度アマゾンにアクセスしてみたのですが、 トップページに自分の名前が書いてあります。 なぜ、このようになっているのか、 ご存知の方がいれば教えていただけますでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • inoue_kou
  • ベストアンサー率57% (27/47)
回答No.1

セッションIDの使用目的によります。 多くは許可された接続かどうかは、IDとパスワードにより識別し、 セッションIDを複数ページにわたる接続の結びつけとして使用します。 IDとパスワードによる認証がBASIC認証ならば、ブラウザを閉じるまでは有効ですので、 セッションを書き換えてアクセスしても認証されている状態になります。 よく会員制サイトのログイン画面にある「IDとパスワードを保存する」は、 セッションIDとは別にクッキーにIDおよびパスワードを保存するものです。

関連するQ&A

  • セッションIDの引き継ぎ方 【html/php】

    携帯サイトでのセッションIDの引き継ぎ方について質問です。 (1)ページにアクセス(セッションIDあり) ↓ (2)申込ボタン ↓ (3)申込予約フォーム このときに、(2)⇒(3)へアクセスするとセッションIDが切れてしまいます。 (3)へリンクする際に htth://www.123?s=[セッションID]  とさせたいのですが、 方法が全くわかりません。。。また、詳しい者が周りにおらず、困っております。 「こういうソースを書けばいいよ」というものを具体的にご教示頂きたく。 こちらに書きこみをさせて頂きました。 ページはhtmlでできれば一番良いのですが、htmlだとむつかしいとの話も聞き、 php形式でも、どちらでもよいので、 とにかくURLの後ろにセッションIDを持たせる方法を 教えて頂きたいです。。 私が全くの無知のため、足りない情報などあるかとおもいますが、 言いたいことを読み取って頂けますと、幸いでございます。 何卒宜しくお願い致します!!!!

  • セッション脆弱性を克服するには?

    またお世話になります。 いつも的確な回答を頂いて助かっていますm( __ __ )m 【仕様】 ・ ログイン認証ページのみ SSL で、それ以外のページは 【非SSL】 です。 ・ ログイン認証時にセッションIDをクライアントのクッキーに保存し、サーバー側では MySQL にセッションIDとログイン情報を保持します。 ・ 認証以降のページでは、クライアントから送信されてくるクッキーセッションIDを元に MySQL のデータと照合し、ユーザーのログイン状態を維持します。 ・ 言語は PHP を使っています。 よくあるセッション管理サイトだと思います。 そして、セッションIDさえ盗まれなければセキュリティとして問題無いと考えています。逆に言うとセッションIDが盗まれると極端に弱いと思います。 【私の考える脆弱性】 ・ ログインページ以外が 非SSL ということから、セッションIDの盗聴が可能かと思います。 ・ 普通に使用していても悪意あるサーバーを経由したらトレースされて簡単にセッションIDが抜かれると思います。 ・ ログインした状態のユーザーが怪しいリンクをクリックしてクロスサイト攻撃でクッキーを抜かれる可能性もあります。 質問は、なぜ、こういった多くの問題が予測できるのに この「教えて!Goo」の認証もログインページはSSLですが、それ以外は非SSLです。といった具合に多くのサイトがこのような認証方式を取っているのか? もう一つ質問は、私は先に上げたような脆弱性を防ぐ方法がわからないのですが、何か画期的な方法でセッションハイジャックなどを防御しているのでしょうか? もしくはセッションIDが盗まれてもそのセッションIDでのアクセスを無毒化するような方法があるのでしょうか? 以上です。 よろしくお願いします。

  • http<>https間のでセッションIDの受け渡しにおいてのhttp

    http<>https間のでセッションIDの受け渡しにおいてのhttps専用のクッキーと、http+https兼用のクッキーの計2つを発行するやり方について教えてください。 httpで買い物カゴに商品を入れてhttpsで顧客情報を入力してもらうサイトを作成しています。 どちらの情報もセッションで管理しているのですが、他のサイトで質問させて貰った際、http<>https間のでセッションIDの受け渡しには、「SSLページと非SSLページが必要なサイトの場合、https専用のクッキーと、http+https兼用のクッキーの計2つを発行するというやり方が安全です。」との回答を頂きました。 ですが、私が知識不足で、どうしたらこれが実現出来るのかさっぱり分からないでいます。 ヤフーの知恵袋で質問した時に回答を頂いたのですが、理解出来ないでいます。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1246548997 http<>https間ではPOSTやGETでSIDを渡しています。 これにどのようにクッキーの発行をすれば「安全」なサイトになるのでしょうか? httpで入力したものはhttpsでも見れる。httpsで入力したものはhttpでは見れない。という動きになれば正解なのですよね?(すみません、これすらも分からないでいます) 別々のクッキーを発行する意味もよく理解出来ないでいます。 説明と合わせて、実際のコードも書いて頂くととても参考になります。 ご教授、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • セッションについて

    php初心者&ど素人です 勉強のためにphpとmysqlで簡単なログイン機能を作ってみようと思いました しかし、Locationでページ移動したときのセッションがセキュリティ的に安全なのかわかりません ログインフォームのlogin.phpから自分自身に送信、ログインできたらセッションを付けてから header("Location:hoge.php");でhoge.phpに飛ばしています ログインした後のhoge.phpページではログイン確認をセッションidがあるかだけ確認しています セッションidがなかったらログインページ戻す if(!$_SESSION['id']){ header('Location: login.php'); exit(); } 質問1 セッションidは表示されている誰でも見れるidなのでセキュリティ的にまずいですか? 簡単にセッションのっとれるもんなんでしょうか? 質問2 一般的にはどうやているのでしょうか? ログインページ全て(例えば編集画面とか会員情報とか)にmysqlから暗号化されたパスワードを取得して、それをセクションに入れて、また、mysqlからパスワードと照合したりしてるんでしょうか? よろしくお願いします

    • ベストアンサー
    • PHP
  • perl/cgi セッションについて

    www.ksknet.net/movabletype/archives/2004/09/cgisession.html セッションについて上記を参考にしています。 セッションIDを付与しているのはソースから分かります。 ただ、付与したセッションをチェックするのが分かりません。(認証成功後のページからの全ての遷移先ページでセッションが有効かどうかチェックしますよね?) index.html ↓ログイン成功。セッションを付与 aaa.cgi ↓セッションをチェック bbb.cgi ダイレクトに(セッションを付与されていない状態) bbb.cgi をアクセスしたときにアクセスできないようにならなければ意味がありませんので・・・。 $session->id()に値が入っているかどうかのチェック文を認証をかけたい全てのページに仕込めばよいのでしょうか? 文章おかしくてすみません・・ よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • セッションIDについて

    セッション管理について、まったく経験がないので、アドバイスお願いいたします! 現在のWEBシステムですが、なぜかIPアドレスのみでしかアクセスできない作りになっています。 それでは困るので、ドメイン名でアクセスできるようにと改修をお願いしたところ、 今度はドメイン名のみでしかアクセスできないがいいか?・・・と質問が届きました。 普通、WEBシステムを使うほうから考えますと、 IPでアクセスしようが、ドメインでアクセスしようが どちらでも動くのが当たり前のように思うのですが。 プログラムの作りでそうなってるのかもしれませんが これって変ですよね? それともよくあることなのでしょうか? 理由を確認したところ、 サーバ名を用いたURLでの構築を行っていないため、ページ遷移を行うとログインエラーが発生する箇所があるとの事。 システムは管理者の機能と一般の機能があり、当然別々の動きをしなければならないのですが 推測するに、IPアクセスだったら管理者、ドメイン名だったら一般というような判断をしているのでは?と思われます。 IPアクセスのみというのを知らずに、ドメイン名でアクセスして試験をしていたら 途中でURLがIPに変わり(cgiでphpが動いて)、エラーになったのです。 session情報は同ドメイン上で有効であるため、 IPでアクセスした場合とドメイン名でアクセスした場合ではセッション情報を引き継げないため、 ログイン情報無しと判断されるため・・・ が原因ということなのですが 実際、SESSIONIDにはどんな内容が入ってくるのでしょうか? 管理者と一般のふたつの機能をセッションIDを使って、切り分けるのはできないことなのでしょうか? セッションIDは使ったこともないので問題外かもしれませんが 自分だったら、今は管理者、今は一般・・・というような情報をhiddenに持つとか、 リンクできる情報をテーブルに持つとかするかな... なんて思いながら、セッションID ってこんな時、どうやって使うのかな? と疑問だらけです。 セッションIDを使って、ふたつの機能を使い分けることはできないのでしょうか? または、ふたつの機能を切り分けできる他の方法などありましたらアドバイスいただけないでしょうか?

    • ベストアンサー
    • CGI
  • セッション

    セッションについて教えて下さい。 指定のID、パスワードでログインしようと思っています。 ソースを記載しますので、お教え下さい。 ID:aaa パスワード:111とします。 [送り側フォーム] <form action="/test2.asp" method="POST" id=form1 name=form1> <input type="text" name="id" value=""><br> <input type="password" name="passwd" value=""> <input type="submit" value="LOGIN" id=submit1 name=submit1> </form> とし、 [受け取り側、認証 test2.asp ] <% If Session("user_test") <> "1" Then Response.Redirect "/test.asp" Response.End() End If %>ここで認証を判断し、認証できなければtest.aspへもどるとし、 Dim id, passwd id = Request.Form("id") passwd = Request.Form("passwd") Session("user_login") = "id" Session("user_login") = "passwd" IF id = "aaa" and passwd = "111" THEN Session("user_test") = 1 Response.Write ("OK") ELSE Response.Write ("ちがうよ") END IF %> ID、パスワードをセッション変数にいれ、各ページで認証すると言う事をやりたいのですが、うまくいきません。 どこがわるいか、お教え下さい。 ※以前にも似たような質問をしているのですが、改善されずお手上げです。

  • PHPセッションの有効期限の調整

    ログイン処理を有するサイトをPHPで記述しています。ログインがあればセッション変数に値を格納し、このデータがあれば、再度ページのアクセス時にパスワードを要求を省略するようにプログラムを進めています。 ここで質問なのですが、セッションが有効になっているあいだに、対象ページへのアクセスがあったときに、そのセッションの期限を延長する方法はありますでしょうか。 また、session.cookie_lifetimeは、プログラム内でクッキーの制御を特に明示していない場合は、どのタイミングが起点として時間が決まるのでしょうか。

    • ベストアンサー
    • PHP
  • PHPのセッションIDについて

    PHP5.3.14を使っています。 セッションについて勉強中です。 セッションを使ってページの表示回数をカウントアップするソースと、 そのセッションを破棄するソースの2種類を用意しました。 ※それぞれ、session_id()をecho表示しています。 クッキーを使った状態でこれらを動かすと、 リセットする(リンクを押してリロードする)度にセッションIDが変わるのですが、 クッキーを使わずに定義済み定数SIDを使って動かすと、 カウント値は元に戻るのですが、 リセットしてもセッションIDが変わりません。 どうすれば、新しいセッションIDを発行(SIDの値を更新)できるのでしょうか? よろしくお願いします。 【以下、ソース2種類と、iniファイルの一部です】 ●up.php <?php session_start(); if (empty($_SESSION['count'])) { $_SESSION['count'] = 1; } else { $_SESSION['count']++; } echo ("###".'"'.session_name().'='.session_id().'"'."</br>"); ?> <p> <?php echo $_SESSION['count']; ?> 回目。 </p> <p><a href="up.php">カウントアップ</A> </p> <p> <a href="reset.php">リセット</A> </p> ●reset.php <?php session_start(); echo ("###".'"'.session_name().'='.session_id().'"'."</br>"); echo ("##### ". $_SESSION['count']."回表示しました。</br>"); $_SESSION = array(); if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } if(isset($_REQUEST[session_name()])){ $_REQUEST[session_name()]="" ; } session_destroy(); ?> <p> <a href="up.php">初めからカウントする</A> </p> ●php.ini (クッキーを使わずSIDを使うを設定) session.use_trans_sid = 1 session.use_only_cookies=0 session.use_cookies=0

    • 締切済み
    • PHP
  • sessionについて

    こんばんは。お世話になっております。 題名にあるようにセッションに関してアドバイスいただきたく投函させて頂きます。 (他に似たような質問はあったものの、上手く解釈できなくて・・) 現在、DBに登録された会員のみがログイン出来る機能を有したサイトを作成しておりますが、DB参照の後、idなどを、セッション変数に代入し、そのデータを持ち歩いています。 書籍や他の方からセッションIDのことを耳にしますが、いまいち、その必要性というものを理解する事が出来ないのですが、このセッションIDは、どこでどういったところで必要になってくるものなのでしょうか? また、チェックボックスなどで任意により、自動でログインする機能を持たせるとした場合、クッキーを用いるという事までは理解したのですが、調べた範囲では、先のセッションIDをクッキーに保存させる・・という内容を多くみました。 現在、セッションハイジャックを避けるようサーバー側に保存されるセッションIDを書き換える設定をしているのですが、このような場合はクッキーを用いての自動ログインはどうしたらいいのだろう?と糸口が見えずにいる次第です。 以下、アドバイスを頂戴したいことをまとめると、 1.ログイン状態を認識させるためには、セッション変数だけで事足りるのか?また、この場合においてのセッションIDの意味するとは? 2.セッションハイジャックを避けるためサーバー側に保存させるセッションIDを随時変更している場合、自動ログイン機能を用いるには、どのような流れ(内容)になるのか? です。お忙しい中恐縮ですが、アドバイスなど頂けたら幸いに思います。宜しくお願い致します。

    • ベストアンサー
    • PHP