PHP Multi sitesi giriş

5 Cevap php

Şu anda birden çok etki genelinde yayılan bir proje üzerinde çalışıyorum. Kullanıcı bir sitede giriş ve aynı zamanda tüm diğerleri üzerinde yapmalısınız edebilmek için ne istiyorum.

Kullanıcıların oturum veritabanında saklanır, ben her etki alanında ayarlanan çerezler oturum kimliğini içerir.

Bir kullanıcı example.com bir cookie, oturum kimliği ile yaratılır açtığında Yani temelde, oturum verileri veritabanında saklanır. Bu yapıldıktan sonra bir çerez kullanıcı siteden siteye dolaşır gibi otomatik oturum olacak, böylece bu eşsiz oturum kimliği ile tüm diğer alanlar üzerinde oluşturulması gerekir

Şimdi ancak bu yöntem (test Opera veya havn't IE'de çalışmıyor (diğer etki, aslında farklı etki üzerinde farklı çerezleri oluşturup üzerinde PHP betikleri çalıştırır resim etiketleri kullanarak) Firefox'ta bunu yapmak için bir yol bulduk Safari, vb henüz).

Herkes bu IE çalışmak için nasıl alabilirim hakkında herhangi bir fikir var mı?

5 Cevap

Benim soruya bir göz Cross Domain User Tracking.

Ne yapmanız gereken "görüntü" başka bir HTTP başlığı eklemektir.

Alıntı Session variables are lost if you use FRAMESET in Internet Explorer 6:

You can add a P3P compact policy header to your child content, and you can declare that no malicious actions are performed with the data of the user. If Internet Explorer detects a satisfactory policy, then Internet Explorer permits the cookie to be set.

A simple compact policy that fulfills this criteria follows:

P3P: CP = "CAO PSA OUR"

This code sample shows that your site provides you access to your own contact information (CAO), that any analyzed data is only "pseudo-analyzed", which means that the data is connected to your online persona and not to your physical identity (PSA), and that your data is not supplied to any outside agencies for those agencies to use (OUR).

You can set this header if you use the Response.AddHeader method in an ASP page. In ASP.NET, you can use the Response.AppendHeader method. You can use the IIS Management Snap-In (inetmgr) to add to a static file.

Follow these steps to add this header to a static file:

  1. Başlat 'ı tıklatın, Çalıştır' ı tıklatın ve sonra inetmgr yazın.
  2. In the left navigation page, click the appropriate file or directory in your Web site to which you want to add the header, right-click the file, and then click Properties.
  3. HTTP üstbilgileri sekmesini tıklatın.
  4. Özel HTTP Başlıkları grup kutusunda, Ekle'yi tıklatın.
  5. Type P3P for the header name, and then for the compact policy string, type CP=..., where "..." is the appropriate code for your compact policy.

Değil emin eğer bu gelişme, bu noktada iyi bir öneri, ama bunu "doğru" bir şekilde yapmak istiyorsanız kesinlikle Single Sign-on bakmak gerekir.

Bana mı öyle geliyor, yoksa sizin Firefox'ta çalışır görüntüleri kullanarak tekniği ile kendinizi CSRFing gibi ses geliyor?

İlginç bir yaklaşım, ben orada bir güvenlik tehdidi kendinizi açılması değil umarım rağmen.

Ben kendimi bu yapmadım, ama doğru yol gidiyoruz düşünüyorum. Yerine görüntünün dışında bir JavaScript dosyası kullanabilirsiniz ben muhtemelen, aynı yapardı. Bu serverer tarafında oluşturulan olacağını ve istemci tarafında çerezleri güncelleştirmek.

Muhtemelen bana biraz aptal olmak, ancak oturum açma her alan adı için çerezleri ayarlamak değil mi? Yani bunun yerine Sitesi A giriş yaptığınızda onları bir tanımlama yerine, onlar beş var, ya da birçok site var ancak?

setcookie(A, $sessid, expire, path, domainA.com);
setcookie(B, $sessid, expire, path, domainB.com);
setcookie(C, $sessid, expire, path, domainC.com);
setcookie(D, $sessid, expire, path, domainD.com);