В настоящее время я борюсь с GDPR и всеми изменениями, которые мне необходимо применить к моим веб-сайтам. Один из моих веб-сайтов Wordpress, использующий тему, которую я создал сам, устанавливает файл cookie с именем PHPSESSID, в котором хранится идентификатор сеанса, который не запускается каким-либо конкретным действием, а только при открытии любой страницы веб-сайта.
Вот что странно в этом:
1.) У меня в коде темы определенно нет ничего, что могло бы сделать это.
2.) У меня есть две идентичные версии этого веб-сайта: одна для тестирования в моем собственном веб-пространстве и домене, а другая - в клиентском домене и веб-пространстве. Провайдер в обоих случаях один и тот же, поэтому я полагаю, что это одна и та же конфигурация сервера. Версия PHP такая же (7.2). У меня одна и та же тема и плагины в обеих версиях, но сайт производительности УСТАНАВЛИВАЕТ этот файл cookie, а тестовый сайт НЕТ.
Теперь все, что я действительно хочу, - это избавиться от этого файла cookie. Я не использую другие файлы cookie на этом сайте и не хочу размещать на этом сайте уведомление о файлах cookie.
Кто-нибудь знает, откуда может взяться этот файл cookie и как я могу заставить сервер / веб-сайт НЕ устанавливать его?
ну, как я уже писал: у меня есть две версии этого веб-сайта, использующие одну и ту же тему и плагины, одна устанавливает ее, другая - нет, и это меня тоже озадачивает.
Если вы открываете новый сеанс браузера (с удаленными предыдущими файлами cookie), создается ли файл cookie повторно? (Попробуйте режим инкогнито в браузере.)
Ваш файл cookie находится в производственной версии, а не на сайте тестирования / разработки?
@Progrock да, cookie также устанавливается после удаления файлов cookie и подключения в режиме инкогнито, а также в других браузерах. И да, это происходит в производственной версии, а не в текстовой версии, хотя оба домена / веб-пространства имеют одного и того же хостинг-провайдера.
Старый: два сайта абсолютно одинаковые, но разные, вот и все!






Это для сеанса. Если вы используете session, используя session_start () в самом начале вашего скрипта. Вы можете найти это имя (PHPSESSIONID) в качестве значения параметра в своем php.ini, следующая часть принадлежит мне (php на IIS)
; Name of the session (used as cookie name).
; http://php.net/session.name
session.name = PHPSESSID
Я подозреваю, что (даже не пытаясь), что у вас есть cookie, потому что установлен другой параметр
; Whether to use cookies.
; http://php.net/session.use-cookies
session.use_cookies = 1
вы можете узнать больше о сессионных и сессионных куки здесь http://php.net/manual/en/session.configuration.php#ini.session.use-cookies
Привет и спасибо за ответ! Я знаю о session_start(), но нигде не использую (это моя собственная тема, ничего не полученная из шаблонов или чего-то подобного, она довольно проста). Мне нужно будет проверить указанные вами настройки php.ini, хотя я не смогу их изменить (они находятся в общем веб-пространстве).
эта директива помечена как PHP_INI_ALL, что означает, что вы можете установить ее с помощью функции in_set. Попробуйте ini_set ("session.use_cookies", "0") в верхней части скрипта, лучше всего перед всем остальным. Я мало что знаю о Word Press, но откуда вы берете этот сеанс, возможно ли это из панели администратора, которая требует входа в систему и должна иметь сеанс? каковы значения файлов cookie? проверьте, прежде чем размещать там что-то конфиденциальное
Хм - я поместил ini_set ( "session.use_cookies", "0"); вверху страницы, но получаю предупреждение вверху страницы с надписью Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time in /home/.sites/.../indexphp on line 2. Я не вошел в серверную часть Wordpress или что-либо еще на этом веб-сайте. Значение этого файла cookie представляет собой абстрактную последовательность символов длиной около 30 символов. В инспекторе Firefox в информации о файлах cookie я также получаю HostOnly: true.
Что ж, я думаю, что это связано с WordPress, где-то что-то включено, не вижу сценарий, с которым вы работаете, вероятно, он включен в другой более крупный сценарий, и все должно начинаться и заканчиваться на index.php или какой-либо подобной странице. Но я не могу вам больше помочь, я не знаю, как работает wordpress, я мог бы с радостью попробовать проверить некоторые файлы, но для того, чтобы дать вам логический ответ, я должен взглянуть на весь проект ...
Спасибо за ваше предложение! Это действительно вверху страницы (index.php, который включает header.php, footer.php и sidebar.php, но я вставил эту строку поверх всего остального, из чего состоит файл php). Кажется, что Wordpress подключается к серверу таким образом, что запускает сеанс даже до загрузки самой страницы. Мне просто интересно, почему этого не происходит и на моем тестовом сайте, который находится у того же провайдера ...
Могли вас взломать? Проверьте, запущен ли какой-либо предварительный скрипт: var_dump(ini_get('auto_prepend_file');
Привет и еще раз спасибо за вашу помощь, я очень ценю это! Я узнал, что это из-за плагина. У меня были две немного разные версии этого одного плагина, одна из которых устанавливала файл cookie PHPSESSID (очевидно, до загрузки какой-либо страницы php), а другая - нет. Извините, я должен был проверить это раньше (я узнал, отключив все плагины один за другим).
Рад, что ты нашел решение. Поскольку мой ответ был правильным на исходный вопрос, я буду признателен, если вы примете ответ.
Кому интересно: я узнал, что это произошло из-за плагина. У меня были две немного разные версии / обновления этого одного плагина, одна из которых устанавливала файл cookie PHPSESSID (очевидно, до загрузки какой-либо страницы php), а другая - нет.
Извините, я должен был проверить это раньше (я узнал, отключив все плагины один за другим). Но теперь моя проблема решена - спасибо всем, кто ответил!
Для людей, которые могут столкнуться с этим, я уверен, что это тоже был плагин: https://wordpress.org/plugins/wp-super-cache/
Но я не думаю, что на самом деле виноват сам плагин. Отключение, а затем повторное включение, ТОГДА убедившись, что в настройках включено кеширование, казалось, «очищаются» файлы cookie только для HTTP. В основном я думаю, что плагин был настроен для работы, но не использовался, поэтому старые изображения только для HTTP кешировались, хотя я постоянно ссылался на изображения HTTPS. Во всяком случае, на всякий случай может помочь.
WP не устанавливает сеансы из коробки, поэтому это либо исходит от плагина, либо от самого сервера, что было бы удивительно, если бы ваш хост автоматически настраивал сеанс.