2016-08-07 4 views
2
  1. Я использую частный MediaWiki размещенного на экземпляре AWS EC2 в течение многих лет
  2. Я думал, что-то пошло не так с некоторым расширением, а именно остановка в середине математике рендеринга, поэтому я попытался перезагрузить страницу с Google Chrome браузера кеш был удален.
  3. Сразу после этого я не могу войти в систему, увидев это сообщение «Кажется, что существует проблема с вашим сеансом входа в систему, это действие было отменено в качестве меры предосторожности против захвата сеанса. Вернитесь на предыдущую страницу, перезагрузите эту страницу а затем повторите попытку ».

Я попытался, 1. Перезапустите Apache сервер 2. попытался MediaWiki sessions and cookies not working on multi-server behind CloudFlare 3. попытался Mediawiki, can't login after password change 4. пытался "идти в вашем LocalSettings.php и в конце добавить следующий код строки: session_save_path (" tmp "); Создайте папку« tmp »в вашем каталоге установки wiki. дайте права 777 (разрешения)», как в https://www.mediawiki.org/wiki/Topic:Pjby0sdeg3e60rfy 5. проверили хранилище на жестком диске сервера, но оно имеет свободное пространство более 3,5 гб.Невозможно войти в mediawiki: отменено как предупреждение против захвата сессии?

Как исправить это и есть ли способ отключить эту действительно полезную функцию «ПРЕДОСТОРОЖНОСТИ»?

+0

Во-первых, это почти наверняка неправильный путь, чтобы исправить положение. Во-вторых, подумайте, что сообщение вряд ли расскажет вам всю правду. Что-то пошло не так, что ваша сессия больше не имеет смысла. Надеюсь, вы вернули изменение на 4, потому что это имеет смысл только в том случае, если сайт * никогда не работал. Вы очистили свой кеш, но вы очистили свои файлы cookie? Вы пробовали это в режиме инкогнито? –

+0

@ Michael-sqlbot Да, я отменил изменения после неудачных попыток, я попытался в режиме инкогнито и очистил все кеши и файлы cookie, даже удалил и переустановил Chrome, но проблема все еще сохраняется. Я даже не редактировал страницу - я просто просматривал страницу и очищал файлы кеша, замечая, что рендеринг висит в середине страницы. – HBS

ответ

2

Оказалось, что что-то пошло не так с настройками кеша в LocalSettings.php. Решено после удаления (почти всех) настроенных настроек кеша.

+0

Мне пришлось изменить '$ wgMainCacheType = CACHE_ACCEL;' на '$ wgMainCacheType = CACHE_NONE;' – feetwet

1

Проверка подлинности MediaWiki и обработка сеанса была переписана для 1.27; see announcement (последний раздел). Предупреждения о захвате сеанса означают, что токен CSRF, который вы отправляете, не был найден в сеансе, что обычно означает, что the session storage настроен неправильно.

+0

Хорошо, тогда я думаю, что это было из-за настройки кеша сеанса. Полезно знать, что что-то было изменено на 1.27 и спасибо за ваш ответ! – HBS

+0

Кстати, смешно, что mediawiki не оставляет других путей решения проблемы. Хотя у меня есть полный контроль над моей установкой mediawiki и ее сервером, не имеет смысла, что она безоговорочно отвергает или отменяет все действия, которые я предпринимаю, и оставляет мои данные полностью недоступными. По крайней мере, должны быть какие-то другие способы «аварийного» восстановления. – HBS

+0

Ваши данные по-прежнему доступны с помощью прямого доступа к БД и сценариев обслуживания. CSRF является серьезной уязвимостью безопасности и позволяет предотвращать предотвращение CSRF - это плохая идея. И это не помогло бы, так как почти всегда проблема заключается в том, что сеансы не сохраняются по нескольким запросам.Первой ошибкой, вызванной этим, является захват сеанса, но это не похоже на то, что вы не можете войти в систему из-за кода анти-угона. Вы не можете войти, потому что сервер не может запомнить вас (или что-то еще). Сообщение об ошибке может быть улучшено -> [T142434] (https://phabricator.wikimedia.org/T142434). – Tgr

1

Добавление $wgSessionCacheType = CACHE_DB; к LocalSettings.php решает проблему. Не нужно менять $wgMainCacheType.

Это работает, без «меры предосторожности против угона сеанса» ошибка:

$wgMainCacheType = CACHE_ACCEL; 
$wgSessionCacheType = CACHE_DB;