2010-08-23 10 views
11

Ich arbeite an einer Website, die Traffic für Partner-Websites generiert. Wenn auf unserer Site auf das Logo einer Partner-Site geklickt wird, öffnen wir die Partner-Site auf einer Seite, die unseren Basis-Header und die Partner-Site innerhalb eines Iframes enthält. Zuvor haben wir einfach die Partnerseite in einem neuen Fenster geöffnet. Alles soweit cool. Die meisten Partnersites verwenden Google Analytics, um die von ihnen gesendeten Zugriffe zu verfolgen. Kurz nachdem wir begonnen haben, Websites innerhalb von iframe zu öffnen, haben unsere Partner berichtet, dass Google Analytics keine Daten mehr verfolgt (oder nur einen Bruchteil der Daten verfolgt).iFrames + Google Analytics + Cookies + P3P

Ich habe meinen fairen Teil der Hausaufgaben/Forschung auf googleverse getan und das Problem mit Google Analytics oder Cookies im Allgemeinen über Domänen und iframes gefunden.

Ich versuche, dieses Problem zu lösen, und die einzige Lösung, auf die verwiesen wurde, ist die Verwendung von P3P-Headern.

  1. Zuerst, wohin gehen die P3P-Header? Auf meinen Websiteseiten oder auf den Seiten der Partnerwebsites. Da wir viele Partnerstandorte (groß und klein) haben, ist es nicht praktikabel, wenn die Lösung darin besteht, Tags in jeden dieser Standorte zu setzen. Ich kann sie leicht der Seite hinzufügen, die den iframe enthält.

  2. Unter den verschiedenen p3p Header Generatoren gibt es eine zuverlässige, die Sie empfehlen?

  3. Gibt es eine Möglichkeit, dieses Problem zu umgehen? Ich muss die Seiten wirklich in iframes öffnen und natürlich müssen die Partnerseiten wirklich den Verkehr verfolgen.

Vielen Dank für die Hilfe.

+0

@eduardocereto: Weitere Codebeispiele hinzugefügt. – Mrchief

Antwort

7

Leider müssen sowohl Sie als auch die Partnerseite die Header festlegen.

Alternativen:

  • Wenn Sie nicht wollen, die Partner-Site-Header zu setzen, ist eine Option, die Sicherheitsstufe zu senken (in IE) oder gewähren Zugriff auf 3rd-Party-Cookies (in FF) im Browser die Einstellungen. Jeder Kunde muss dies tun, daher ist dies möglicherweise keine attraktive Lösung.
  • Verwenden Sie localStorage (HTML5-Thingy - Browser, die localStorage unterstützen, ermöglichen den Zugriff auf die Site und den iFrame-Inhalt, der in localStorage gespeichert ist). Dies ist möglicherweise kurzfristig nicht durchführbar, da sowohl Sie als auch Ihre Partner-Site Informationen zum Speichern/Lesen zu/von localStorage implementieren müssen und nicht jeder Browser dies unterstützt (insbesondere ältere IE-Browser).

eine grundlegende Politik Header hinzuzufügen (im Idealfall sollten Sie Ihre eigene Politik erzeugen, die gerade nach vorne ist - prüfen item # 2 unten)

in php fügen Sie diese Zeile:

<?php header('P3P: CP="CAO PSA OUR"'); ?> 

in ASP. Net:

HttpContext.Current.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\""); 

in HTML Seiten:

<meta http-equiv="P3P" content='CP="CAO PSA OUR"'> 

In Bezug auf Ihre anderen Anliegen:

1)P3P Header beziehen sich auf die HTTP-Header, die aufgerufen liefert etwas a compact policy an den Browser. Ohne eine solche Richtlinie blockieren der Internet Explorer (vor allem) und andere Browser den Zugriff auf Cookies von Drittanbietern (ein Begriff, der sich auf die Cookies von iFrame bezieht), um die Bedenken der Benutzer bezüglich des Datenschutzes zu schützen.

Soweit Google Analytics geht, beide Ihrer Website und der Partnerseite muss noch cross domain tracking konfigurieren, wie in deren Dokumentation beschrieben.

2) Sie diese grundlegende Politik Header verwenden (das ist genug iFrame Cookies zu beheben):

P3P: CP = "CAO PSA OUR"

oder erzeugen dein eigenes. Wenn Sie nicht sicher sind, was diese Begriffe bedeuten, siehe this.

Um eine solche Richtlinie zu generieren, können Sie Online-Editoren wie p3pedit.com oder tool von IBM verwenden, die eine Reihe von Fragen enthalten und Ihnen ermöglichen, Antworten zu präsentieren. Dadurch können Sie solche Richtlinien schnell erstellen. Sie können die policy XML, und mehr generieren.

3) Sie können die beiden oben genannten Alternativen ausprobieren.

Schritte die Richtlinie auf die gesamte Website

  1. eine Datenschutzrichtlinie generieren hinzuzufügen (eine der oben erwähnten Tools) oder die Basispolitik
  2. In IIS der rechten Maustaste verwenden Klicken Sie auf die gewünschte Seite, das Verzeichnis oder die Site, und klicken Sie dann auf Eigenschaften.
  3. Klicken Sie auf der Registerkarte HTTP-Header auf Hinzufügen.
  4. Geben Sie im Feld Name des benutzerdefinierten Headers P3P ein.
  5. Geben Sie im Feld Benutzerdefinierter Kopfzeilenwert Ihre Compact P3P-Richtlinie (oder die grundlegende von oben) ein und klicken Sie dann auf OK.
  6. In Apache wird eine mod_header Linie wie folgt tun:
Header append P3P "CP=\"CAO PSA OUR\"" 

Hoffnung ths hilft.

+0

Gute Antwort. Ich habe bemerkt, dass der CP = "CAO PSA OUR", in der Regel ausreicht, um die Cookie-Beschränkung zu umgehen. – Eduardo

+2

Gibt es einen Grund, die vollständige P3P-Datei zu erstellen, außer sich an eine Spezifikation zu halten, die niemanden interessiert? – Eduardo

+1

Der Grund für die Erstellung einer vollständigen P3P-Datei wäre, dass Sie sich darum kümmern! :) – Mrchief