Назад | Перейти на главную страницу

Общая Bugzilla с SSL и mod_perl имеет проблемы с cookie для входа

Мне удалось настроить общую среду mod_perl Bugzilla, используя переменную PROJECT, и она отлично работает.

Теперь я пытаюсь сделать то же самое на другом сервере с той же базовой настройкой, за исключением того, что хосты, использующие Bugzilla, также используют SSL. Это означает, что у них также есть разные уникальные IP-адреса.

Хотя эта вторая настройка в основном работает, у меня возникают проблемы с входом в систему и файлами cookie. Логины для двух Bugzillas мешают друг другу, вызывая повторяющиеся запросы на вход и сообщения «неверный пароль». По-видимому, это довольно часто встречается с некоторыми настройками Bugzilla, но обратите внимание, что у меня нет этой проблемы с моей исходной общей mod_perl Bugzilla (без SSL).

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

Кто-нибудь решил эту проблему?

Дополнительно: я использую Bugzilla 4.4.4. Bugzilla1 - это bugs.domain1.com; его домен cookie - «», а путь к файлу cookie - «/». Bugzilla2 - это bugs.domain2.com; его домен cookie - «», а путь к файлу cookie - «/».

Хотя обычно при внесении изменений в настройку Bugzilla / mod_perl я перезапускаю Apache, чтобы изменения вступили в силу, я понимаю, что в этом нет необходимости, когда изменяются только файлы параметров (включая изменения в Cookiedomain и cookiepath) (подтверждено).

Я попытался установить два значения Cookiedomain на «bugs.domain1.com/» и «bugs.domain2.com/», но это привело к тому, что файлы cookie не создавались вообще.

Я использовал LiveHTTPHeaders, чтобы посмотреть, что происходит с файлами cookie Bugzilla, связанными с входом в систему. Пока два Bugzillas работают нормально (без ложных запросов на вход), передаваемые файлы cookie имеют смысл. Перед входом в систему Bugzilla_login_request_cookie устанавливается с уникальным значением. После входа в систему Bugzilla_login_request_cookie эффективно очищается, и устанавливаются два новых файла cookie: Bugzilla_login и Bugzilla_logincookie. Когда один из Bugzillas внезапно снова запрашивает вход в систему, хотя я не вижу изменений в файлах cookie, передаваемых на сервер в заголовке GET, сервер возвращает это:

Set-Cookie: Bugzilla_login_request_cookie=<new value>; path=/; secure; HttpOnly

Что-то заставляет Bugzilla думать, что пользователь больше не вошел в систему, и Bugzilla отвечает, устанавливая новое значение для Bugzilla_login_request_cookie, что снова запускает процесс входа в систему.

Обновление: по совету разработчика Bugzilla я сообщил об этом как об ошибке (# 1005931) в системе отслеживания ошибок Bugzilla (Bugzilla).

Судя по вашему дополнительному отчету, это похоже на ошибку в новом механизме, который мы добавили для предотвращения XSRF на странице входа. Пожалуйста, подайте его на https://bugzilla.mozilla.org/ ? Спасибо :-)

В коде есть только одно место, где установлен этот файл cookie - строка 314 CGI.pm (на стволе). И он устанавливается только в том случае, если Bugzilla считает, что нет зарегистрированного пользователя. И, как вы говорите, так быть не должно.

Gerv