Nasıl iki farklı etki alanlarında çerezleri kullanabilirim?

6 Cevap php

Ben bir tanımlama ile iki farklı etki arasında SSO bilgileri paylaşmak gerekir, bu PHP ve nasıl yapılabilir?

6 Cevap

Her iki etki, bir resim veya başka bir etki alanından çekilir diğer web elemanı yerleştirmek. Kullanıcı X A etki üzerinde diğer etki alanı bildirmek için URL kullanın, ve izin alan oda ortak onların sisteminde bu kullanıcı ile kullanıcı kimliği.

Bu doğru bir şekilde yürütmek için biraz karmaşık, ama aracılığıyla düşünüyorsanız çok iyi çalışmak gerekir.

Vinko hafife ben size ilgili güvenlik riskleri anlamak almamalıdır bir açıklama (teşekkürler!) işaret ediyor. Bu bilgi kimseye herhangi bir değeri varsa, o zaman hassas bilgileri bırakmadan önlemek vb uygun şifreleme, kimlik doğrulama, kullanımı ve çeşitli saldırılar (tekrar, ortada adam, vb) önlemek için emin olun. Iletişim sadece bu özel URL yoluyla iki sunucu arasında oluyor bu yana, her iki web sitelerini kontrol ve her ikisi için güvenli bir gizli anahtarı seçebilirsiniz çünkü bu çok ağır olmamalıdır. Ama aklınızda tutun.

Eğer aynı alanı kullanarak iki site var ve aralarında çerezleri paylaşmak isterseniz, her etki alanı için settings.php dosyada böyle bir şey ayarlayın:

ini_set('session.cookie_domain', '.EXAMPLE.com');

Eğer lider dahil emin olun. ' etki alanı adından önce veya işe yaramaz.

Bu, kullanıcıların etki alanı çapında kurabiye için yapılandırılmış herhangi siteler arasında giriş statüsünü korumak için olanak sağlar.

Bu da olumsuz yan etkileri olabilir, bu yüzden size arasında çerezleri paylaşmak istediğiniz siteler için ilgili tüm çerezleri aşina değilseniz bunu yapmayın.

Sen, çerezleri bir etki alanına bağlı değilsiniz. Orada bu konuda bir kısıtlama ve bu gibi cross site scripting atıfta bulunuyor.

Now, for some help to your problem. What you can do is create a script that helps bridge them.

Eğer küresel ilk siteden çerez bilgileri ihtiyacımız olacak ikinci sitenize tüm bağlantıları yeniden yazabilirsiniz.

Daha sonra programlama sitesi-b tüm bağlantıları üzerine çerez-id sorgu dizesi ekleyerek, her ikisi de okuyabilirsiniz bir veritabanına sitesinden-bir bütün çerezleri kaydetmek istiyorsunuz, o zaman bu çerez kimliği arama ve altında çerezleri yeniden ayarlamak yeni etki alanı.

Orada (PHP ADODB) gerçekten iyi bir PHP veritabanı soyutlama kütüphanesidir ve bu bütün bir sürü daha kolay hale getiren bir oturum paylaşım eklenti vardır.

Peki, sizin etki bir .yourdomain.com çerezi oluşturarak kolay bir şekilde yapabileceğini sadece farklı alt etki alanları ise. Sonra çerez tüm alt etki alanlarındaki tüm istekleri ile birlikte geçirilir.

Tarayıcıların bir güvenlik riski olarak tedavi gibi farklı alanlar arasındaki tanımlama bilgilerini paylaşmak isterseniz bu kadar basit değil.

Tam örnek nedir?

Google Analytics ve diğer izleme görüntüleri, vb gibi bazı yazılım durumda tarayıcı çerezleri gönderirken güvenlik umurumda değil bildirmek için P3P başlıklarını kullanmak zorunda olabilir. Sonra görüntü isteyen bir tarayıcı tepkinin bir parçası olarak bir çerez alır ve ayrıca P3P inceler. Eğer tüm Tamam o sabit disk üzerinde çerez ve web sitenizde oturur (ancak diğer etki sayfanın parçasıdır) tarayıcı boyunca çerez göndermek olacak bir görüntü istemelidir sonraki zaman kazandırır. Ama bu yardımcı olmaz sanırım ;-)

Ben bunun doğrudan bir anlam alanlarındaki bir çerez değeri hiç kullanmamış.

Aşağıdaki makalede, birden çok alt etki alanları ve birden çok alanda aynı çerez nasıl paylaşıldığı açıklanmaktadır

Sharing Cookies Across Domains
http://www.15seconds.com/issue/971108.htm

Ben güvenlik kaygıları hakkında emin değilim, ama bir çerez etki alanını değiştirmek için bir Apache ayarı vardır.

# in httpd.conf (or equivalent)
php_value session.cookie_domain mydomain.com

Ben başarıyla alt etki alanları için bu yöntemi istihdam var, ama farklı etki girişiminde asla.

http://us.php.net/manual/en/function.session-set-cookie-params.php açıklanan PHP değişkenler yönünü ayarlamak için bir yöntem de bulunmaktadır. Belgeler farklı bir etki çerezleri ayarlamak için yeteneği ya yetersizlik hiçbir başvuru yapar.

Orada farklı bir Stack Overflow thread Bu aynı konu üzerinde, ama şimdiye kadar yeterli bir cevap olduğunu sanmıyorum.