Экземпляр Discourse за фаерволом F5 возвращает ошибку «the requested URL was rejected»

community.subtchallenge.com — это сторонняя установка Discourse, которую я хочу использовать как пользователь. Я потратил часы на отладку проблемы, из-за которой не могу публиковать сообщения на их форуме. Я пробовал разные браузеры, компьютеры, операционные системы, IP-адреса и даже континенты… Результат нажатия кнопки «Создать сообщение» всегда был одним из следующих (независимо от вышеупомянутых вариантов):

  1. Сообщение корректно помещалось в очередь на модерацию, и я получал уведомление о том, сколько моих сообщений ожидает в очереди (это случалось только с короткими тестовыми сообщениями).

  2. Сообщение не попадало в очередь (это было подтверждено с помощью электронной почты администраторами форума), и меня перенаправляло на несуществующую страницу. При анализе сетевого трафика я обнаружил POST-запрос к /posts, который возвращал следующий результат:

     Запрошенный URL был отклонён. Пожалуйста, обратитесь к администратору.
     Ваш ID поддержки: 18286718686107272025
    
  3. Сообщение визуально скрывалось: в нижней части страницы отображалась только синяя полоса с бесконечно вращающимся индикатором загрузки, без каких-либо других действий. Я пробовал ждать несколько минут, но вращение не прекращалось. В сетевом журнале было указано, что POST-запрос к /posts был отправлен, но ответа не поступило. После начала этой проблемы у меня обычно возникали ещё более серьёзные трудности: я не мог войти в систему снова (страница входа загружалась, но форма входа не отправлялась). Казалось, что мой IP-адрес был заблокирован «тихо» или что-то в этом роде (смена IP-адреса обычно помогала).

Я понял, что могу избежать ошибки 2 (и, возможно, также 3), если буду внимательнее относиться к содержанию своего сообщения. Ошибка 2 возникала в 100% случаев, когда сообщение содержало апостроф, кавычку или перенос строки. Также она появлялась, если длина сообщения превышала 1000 символов.

Знаком ли кому-то такой поведенческий паттерн? Есть ли что-то, что я мог бы посоветовать администратору форума?

Благодарю за идеи.

Вы пробовали в безопасном режиме Discourse? Пробовали ли вы в безопасном режиме вашего веб-браузера?

Спасибо за подсказку про безопасный режим Discourse. Я о нём не знал. К сожалению, на этом форуме он каким-то образом не работает: при входе на community.subtchallenge.com/safe-mode без авторизации я попадаю на страницу входа. Если же ввести этот URL будучи авторизованным, появляется страница «Ой, эта страница не найдена». Возможно, у них есть какой-то кастомный .htaccess, который нарушает функциональность?

Я не пробовал безопасный режим в браузере, но так как я тестировал несколько браузеров на свежих машинах (VM, VPS), думаю, что безопасный режим браузера ничего не изменит. Я пробовал Firefox, Chromium, w3m (ладно, тут игры нет), Palemoon и Opera.

Возможно, проблема в некорректно настроенном межсетевом экране приложения.

Спасибо за подсказку, возможно, это именно оно. Однако они уже «передали проблему в IT-отдел», и специалисты IT заявили, что не обнаружили никаких проблем на своей стороне. В итоге у нас остаётся непроверяемое утверждение :frowning: Я попрошу их проверить конфигурацию брандмауэра.

Размышление о проблеме с точки зрения неправильной настройки брандмауэра имеет большой смысл. Возможно, он просто пытается провести какой-то «ИИ-анализ», который, очевидно, не срабатывает для моих не тестовых публикаций.

Похоже, что вот в чём проблема:

Ваш HTTP-трафик блокируется брандмауэром от F5 Networks под названием Application Security Manager (ASM). Он выдаёт сообщения вроде:

Пожалуйста, обратитесь к вашему администратору.
Ваш идентификатор поддержки: xxxxxxxxxxxx

Таким образом, ваше приложение передаёт данные, которые ASM по какой-то причине распознаёт как угрозу. Передайте идентификатор поддержки вашему сетевому инженеру, чтобы узнать конкретную причину.

Согласно документации F5, это указывает на то, что их брандмауэр заблокировал запрос:

Это сообщение означает, что ASM заблокировал запрос. Можете ли вы найти идентификатор поддержки в ваших журналах (/var/log/asm) — соответствующая запись в журнале предоставит более подробную информацию.