Что такое заголовок ( "P3P: CP =" CAO PSA OUR "); делать?

Что такое header('P3P: CP="CAO PSA OUR"'); для?

Как/почему он позволяет этому script работать в IE?

session_start();

if (!session_is_registered(pre_myusername)) {
    header("location:index.php");
    exit();
}

Ответ 1

P3P - это платформа для настроек конфиденциальности. Значение CP="CAO PSA OUR" описывает компактная политика с токенами

  • контакт и другие (информация о доступе: какая информация собирается?)

    Идентифицированная контактная информация и другие идентифицированные данные: предоставляется доступ к идентифицированной онлайн-и физической контактной информации, а также к некоторым другим идентифицированным данным.

  • псевдоанализ (информация цели: для чего используется собранная информация?)

    Псевдонимный анализ. Информация может использоваться для создания или создания записи конкретного человека или компьютера, привязанного к псевдониму, без привязки идентифицированных данных (таких как имя, адрес, номер телефона, или адрес электронной почты). Этот профиль будет использоваться для определения привычек, интересов или других характеристик людей для целей исследований, анализа и отчетности, но он не будет использоваться для поиска конкретных лиц. Например, маркетолог может пожелать понять интересы посетителей на разных частях веб-сайта.

  • ours (информация получателя: кто получает эту собранную информацию?)

    Мы сами и/или сущности, действующие как наши агенты или сущности, для которых мы действуем как агент. Агент в этом случае определяется как третье лицо, которое обрабатывает данные только от имени службы поставщика для завершения заявленных целей. (например, поставщика услуг и его бюро печати, который печатает метки адресов и ничего не делает с информацией.)

Ответ 2

Gumbo уже объяснил, что такое P3P. Теперь, о вашем коде, session_is_registered устарел. Вы используете pre_myusername как константу. Если он не определен, PHP будет принимать строку, но полагаться на это поведение не рекомендуется. Если вы действительно намеревались использовать константы, используйте прописные буквы для ясности. Обратите внимание, что переменная должна иметь префикс доллара ($).

  • Убедитесь, что контент не отправлен до session_start(); или cookie сеанса не будет отправлен.
  • Переменные сеанса доступны из массива $_SESSION.
  • isset() может использоваться для проверки существования переменной (в этом случае используется ключ массива).

Итак, фактический код будет выглядеть следующим образом:

session_start();
if(!isset($_SESSION['pre_myusername'])){
    header("Location: index.php");
    exit();
}

Для примеров и документации функций сеанса посетите Руководство по PHP.

Ответ 3

header('P3P: CP="CAO PSA OUR"') устанавливает специальную P3P Компактную политику (CP), которая обычно используется для разрешения сторонних файлов cookie (i), которые будут использоваться в Internet Explorer.

Из статья 323752 базы знаний Майкрософт.

Internet Explorer 6 представил поддержку платформы для конфиденциальности Предпочтения (P3P). Стандарт P3P отмечает, что если FRAMESET или родительское окно ссылается на другой сайт внутри FRAME или внутри дочернее окно, дочерний сайт считается третьим лицом. Internet Explorer, который использует настройку конфиденциальности по умолчанию для среды, молча отклоняет файлы cookie, отправленные с сторонних сайтов.

В статье описывается CP-код выше:

Этот пример кода показывает, что ваш сайт предоставляет вам доступ к вашим собственным контактную информацию (CAO), что любые анализируемые данные "псевдоанализ", что означает, что данные связаны с вашим онлайн-персоной, а не вашей физической идентичности (PSA), и что ваш данные не предоставляются никаким внешним агентствам для использования этими учреждениями (OUR).

NB Этот CP недопустим, поскольку он не содержит RETENTION или КАТЕГОРИИ.