iFrames + Google Analytics + Cookies + P3P - PullRequest
       41

iFrames + Google Analytics + Cookies + P3P

11 голосов
/ 23 августа 2010

Я работаю над сайтом, который генерирует трафик для партнерских сайтов.Когда на нашем сайте нажимается логотип партнерского сайта, мы открываем партнерский сайт на странице, которая содержит наш основной заголовок и партнерский сайт в рамках iframe.Ранее мы просто открывали партнерский сайт в новом окне.Пока все круто.

Большинство партнерских сайтов используют аналитику Google для отслеживания отправляемого им трафика, и вскоре после того, как мы начали открывать сайты в iframe, наши партнеры сообщили, что Google Analytics больше не отслеживает данные (или отслеживает толькочасть данных).

Я выполнил большую часть домашней работы / исследований по googleverse и обнаружил известную проблему с Google Analytics или файлами cookie в целом по доменам и фреймам.

Я пытаюсь решить эту проблему, и единственное упомянутое решение - это использование заголовков P3P.

  1. Во-первых, куда деваются заголовки P3P?На страницах моих сайтов или страниц партнерских сайтов.Так как у нас много партнерских сайтов (больших и маленьких), не будет практичным, если решение будет размещать теги на каждом из этих сайтов.Я могу легко добавить их на страницу, содержащую iframe.

  2. Среди различных генераторов p3p-заголовков есть надежный, который вы рекомендуете?

  3. Есть ли способ обойти эту проблему?Мне действительно нужно открывать сайты в iframes, и, очевидно, партнерские сайты действительно должны отслеживать трафик.

Спасибо за помощь.

1 Ответ

8 голосов
/ 15 августа 2011

К сожалению, и вы, и партнерский сайт должны установить заголовки.

Альтернативы:

  • Если вы не хотите, чтобы партнерский сайт устанавливал заголовки, одним из вариантов является снижение уровня безопасности (в IE) или предоставление доступа к сторонним файлам cookie (в FF) в настройках браузера. Это должен делать каждый клиент, поэтому это не может быть привлекательным решением.
  • Используйте localStorage (HTML5 thingy - браузеры, поддерживающие localStorage, разрешают доступ как к сайту, так и к содержимому iFrame, которое хранится в localStorage). Это может быть неосуществимо в краткосрочной перспективе, поскольку для реализации сохранения / чтения информации в / из localStorage требуется и вам, и вашему партнерскому сайту, и не все браузеры поддерживают это (особенно старые браузеры IE).

Чтобы добавить базовый заголовок политики (в идеале вы должны создать собственную политику, которая проста - проверьте пункт № 2 ниже)

in php добавить эту строку:

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

в ASP.Net :

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

в HTML страниц:

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

Относительно ваших других проблем:

Заголовки

1) P3P относятся к заголовку HTTP, который доставляет в браузер нечто, называемое compact policy . Без такой политики IE (в первую очередь) и другие браузеры будут блокировать доступ к сторонним cookie-файлам (термин, используемый для обозначения cookie-файлов iFrame) в целях защиты конфиденциальности пользователей.

Что касается Google Analytics, и вашему сайту и сайту партнера все еще необходимо настроить междоменное отслеживание , как указано в их документации.

2) Вы можете использовать этот заголовок basic policy (этого достаточно для исправления файлов cookie iFrame):

P3P: CP = "CAO PSA OUR"

или создайте свой собственный. Если вы не уверены, что означают эти термины, см. this .

Для создания такой политики вы можете использовать онлайн-редакторы, такие как p3pedit.com или IBM tool , которые представляют набор вопросов и позволяют вам представить ответы. Это позволяет вам быстро создать такую ​​политику. Вы можете сгенерировать политику XML , компактную политику и многое другое.

3) Вы можете попробовать две альтернативы, упомянутые выше.

Действия по добавлению политики на весь сайт

  1. Создайте компактную политику (используя один из инструментов, упомянутых ранее) или используйте базовую политику
  2. В IIS щелкните правой кнопкой мыши нужную страницу, каталог или сайт, а затем нажмите Свойства.
  3. На вкладке Заголовки HTTP нажмите Добавить.
  4. В поле Имя пользовательского заголовка введите P3P.
  5. В поле Значение настраиваемого заголовка введите свою политику Compact P3P (или базовую политику из приведенных выше) и нажмите кнопку ОК.
  6. В Apache , строка mod_header будет выглядеть так:
Header append P3P "CP=\"CAO PSA OUR\""

Надеюсь, это поможет.

...