Set-Cook ie мешает мне войти в WordPress - PullRequest
0 голосов
/ 18 февраля 2020

Я использую WordPress 5.3.2 на Apache / 2.4.29 (Ubuntu) 18.04 на капле Digital Ocean.

Мой клиент запросил следующее:

Все файлы cookie, передаваемые в зашифрованном сеансе, в частности файлы cookie сеанса, должны быть помечены как «Защищенные», а вся информация о сеансе должна передаваться по протоколу HTTPS.

Флаг HttpOnly также должен быть установлен в пределах параметра cook ie

Итак, я определил следующее на виртуальном хосте:

Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure;SameSite=Strict

Затем я проверил ответ заголовка и увидел, что мой Set-Cook ie определен.

Проблема в том, что теперь я не могу войти в WordPress. WordPress говорит:

ОШИБКА: куки заблокированы или нет поддерживается вашим браузером. Вы должны включить куки для использования WordPress.

Что я делаю не так?

1 Ответ

0 голосов
/ 20 февраля 2020

Strict, вероятно, является более строгим, чем вы хотите, так как это предотвратит отправку файлов cookie при первоначальной навигации между сайтами, например, если я отправил вам по электронной почте ссылку на страницу в вашем блоге, когда вы впервые перешли по этой ссылке, файлы cookie SameSite=Strict не будут отправлены, и может показаться, что вы не вошли в систему.

SameSite=Lax здесь лучше по умолчанию. Затем я бы в явном виде посмотрел на настройку SameSite=Strict или SameSite=None для отдельных файлов cookie, где вы знаете требуемый уровень доступа.

Атрибут HttpOnly также скрывает все ваши установленные на сервере файлы cookie от читается JavaScript. У вас вполне может быть функционал на вашей странице, который требует этого.

Наконец, общий подход здесь, вероятно, излишний - так как похоже, что вы будете добавлять этот фрагмент к каждому исходящему повару ie заголовок, даже те, которые уже включают эти атрибуты. Это может вызвать непредсказуемое поведение. Я бы сделал это на определенной основе c allow-list, проверив наличие явных имен cook ie, или я бы изменил регулярное выражение, чтобы установить его, только если эти атрибуты отсутствуют.

...