2012-03-02 4 views
10

かなり基本的な質問はこちら。 PHPでは、ユーザーのブラウザでCookieが無効になっている場合は、サーバークッキー($_SESSION)とクライアントクッキー($_COOKIE,)の両方を使用できません。 基本的には、ユーザーにログインさせたり、セッションを必要とすることをすることはできません。クッキーが無効になっているとどうなりますか?

また、誰かがCookieを無効にしたいと思っていますか?

ありがとうございます!

答えて

14

はい、それは本当です。セッションと通常のCookieはどちらも通常のCookieです。ユーザーがCookieを受け入れない場合、ユーザーはCookieを有効にした機能を使用できません。つまり、インターネット全体がそのユーザーのために壊れることを意味します。そのため、この日には、ほとんどすべてが無効になっているクッキーを持っている人はほとんどいません。

PHPにはtransparent session idsと呼ばれる組み込みのメカニズムがあり、クエリパラメータにセッションIDを含むすべてのリンクを自動的に書き換えます。私はURLのセッションIDがワームのまったく新しい缶を開くので、私はそれを使用することをお勧めしません。使いやすさのために

、私は、ユーザーが(あなたが得るかどうかを確認し、クッキー設定しなければならないURL内のフラグを次のページにリダイレクトし、クッキーを設定して有効かどうかのクッキーを持っているかどうかをテストするお勧めしますクッキーを戻す)、そうでなければ、ユーザーにそれらを有効にするよう助言してください。

+0

+1この回答です。無作為な考え..あなたはtrans-sidがSSLと組み合わせて受け入れられるかもしれないと思いますか? (クエリパラメータがsslされているので)? – Ben

+0

@Ben問題は本当にSSLの欠如ではありません。ユーザーがURLにセッションが含まれていることを理解できず、trans-sidを含むURLを友人に送信することです。リンクをクリックすると、友人がユーザーとしてログに記録されます。 –

+0

@Benいいえ問題は*可視性*に関するものではありません。誰かがどちらか一方を傍受する位置にいる場合、クッキーはURLと同じように見えます。問題は、ブラウザの履歴などにURLを共有することです。 – deceze

2

$_GETでユーザーを追跡できます。

すべてのシングルページで、ユーザーが訪問したときに?user_id=XYZ123を渡すと、非常によく似たサーバー識別が実装されているとします。これは明らかに不利があります:あなたがあなたのsession_idを離れてあげるURLをコピー&ペースト/場合

  • ための1セッションハイジャックが
  • はなぜさえ少ないハイテクサヴィある

    1. をユーザークッキーを無効にする?
      ユーザーは、第1および第三者のCookieをすべてミックス内に放り込む傾向がありますが、それらは異なる品種から来ています。

      ファーストパーティのクッキーは通常OKです。 Facebookにアクセスすると、Facebookとのやりとりを保存するためのCookieが保持されることが期待されます。

      FacebookやeBayの両方に広告を追加している広告会社があなたのクッキーを元に戻しチェックするので、この人はeBayでxyzを探していたのでFacebookにいます彼を見せて彼に買い物などをさせる...

    1

    は、私はあなたのサーバがSESSION_IDを見つけることができない場合、彼はセッションを復元することはできません、セッションリファレンスマニュアル要するにhttp://www.php.net/manual/en/session.idpassing.php

    を読むべきだと思います。しかし、別の方法でセッション値を保存することもできます。または、ユーザーのクライアント環境パラメーターでsession_odベースを生成することもできます。

    関連する問題