2012-03-02 19 views
10

Burada oldukça basit bir soru. Kullanıcının tarayıcısı çerezleri devre dışı bırakması durumunda PHP yılında, her iki sunucu çerezleri ($_SESSION) VE istemci çerezleri ($_COOKIE, setcookie) ya da sadece ikinci devre dışı kullanımını yapamaz? Temel olarak, kullanıcının oturum açmasını veya oturum gerektirecek bir şey yapmasını sağlayamazsınız değil mi?Çerezler devre dışı bırakılırsa ne olur?

Ayrıca bu durumda birisi çerezleri devre dışı olması ister ki?

Teşekkürler!

cevap

14

Evet, bu doğru ... onu vs vs satın yapmak için abc onu gösteriyor. Her iki seans ve normal çerezler normal çerezlerdir. Bir kullanıcı çerezleri kabul etmiyorsa, kendileri tarafından etkinleştirilen herhangi bir işlevi kullanamaz. Bu, neredeyse tüm internetin bu kullanıcı için kırılacağı anlamına geliyor. Bu nedenle, bu gün ve yaşta neredeyse hiç kimsenin çerezleri tamamen devre dışı bıraktığı yok.

PHP Automagically bir sorgu parametresi oturum kimliği içerecek şekilde tüm bağlantıları yeniden yazar transparent session ids denilen yerleşik bir mekanizması vardır. URL'de oturum kimlikleri tamamen yeni bir solucan açabileceğinden, bunu kullanmanızı önermem.

Kullanıcı dostu olması için, kullanıcının tanımlama bilgilerinin etkin olup olmadığını sınamanızı öneririm (bir tanımlama bilgisi belirleyin, bir sonraki sayfaya URL'de bir bayrakla yönlendirin ayarlanmalıdır, bkz. herhangi bir çerez geri) ve değilse, onları etkinleştirmek için kullanıcıyı bilgilendirin.

+0

+1. Rastgele düşünce .. Trans-sid'in SSL ile birlikte kabul edilebilir olduğunu düşünüyor musunuz? (sorgu parametreleri ssl'ed olduğundan)? – Ben

+0

@Ben Sorun, gerçekten SSL eksikliği değil, kullanıcının URL'nin bir oturum içerdiğini ve bir arkadaşınıza trans-sid içeren bir URL gönderdiğini anlayamaması.Bağlantıyı tıklamak, arkadaşını kullanıcı olarak kaydeder. –

+0

@Ben No. Sorun, * görünürlük * ile ilgili değil. Bir çerez aynı şekilde bir URL’de görülebilir. Sorun, URL'leri paylaşmak, tarayıcı geçmişinde vb. Bulundurmaktır. – deceze

2

Sen $_GET kullanıcıyı takip edebilirsiniz.

her-tek sayfada kullanıcının ziyaret Eğer çok benzer bir sunucu kimlik hayata olurdu sonra ?user_id=XYZ123 geçmesi olduğunu düşünün. Belli dezavantajları vardır: Eğer session_id uzakta vereceğiz URL'sini yapıştırmak kopyalayıp/eğer
  • nedeniyle 1 seans yüksek jak
  • Neden daha az Teknoloji savy olan

    1. kullanıcılar çerezleri devre dışı bırak
      Kullanıcılar, birinci ve üçüncü taraf çerezlerini tümüyle karıştırırlar, ancak farklı ırklardan gelirler.

      Birinci taraf çerezleri genellikle iyi durumda. Facebook'u ziyaret ettiğinizde Facebook'un, etkileşimlerinizi sunucuyla birlikte saklamak için bir çerez tutması bekleniyor.

      Beklenmeyen şey, hem Facebook hem de eBay'de eklediği reklam şirketinin, çerezinizi geri aldığını ve kontrol ettiğini, yani, bu adamın eBay'da xyz'i aradığını ve şimdi de Facebook'ta olacağını düşünüyorum.

    1

    ben size sunucu session_id bulamazsa, o oturumu geri edemez, oturum referans kılavuzu Kısacası http://www.php.net/manual/en/session.idpassing.php

    okumak gerektiğini düşünüyorum. Ancak oturum değerlerini saklamak için alternatif yollar kullanabilirsiniz. Ya da kullanıcının istemci ortam parametrelerine session_od tabanı oluşturabilirsiniz. Bu cevap için

    İlgili konular