Разобравшись, мы обнаружили, что у нас был включен параметр Настройки -> Безопасность -> Политика безопасности контента.
После его отключения пользователи смогли зарегистрироваться. Мы попробовали добавить URL-адреса из приведенного выше отчета в белый список источников скриптов, но это не решило проблему.
РЕДАКТИРОВАНИЕ: вернувшись к этому позже и посмотрев ещё раз, я понял, что происходит.
Я могу подтвердить, что это было внедрено CF.
Мы НАСТОЙЧИВО НЕ РЕКОМЕНДУЕМ отключать CSP на продакшн-сайте. Вместо этого, если возможно, отключите Cloudflare (у нас было МНОГО, МНОГО случаев поддержки, связанных с тем, что CF негативно влияет на JS Discourse), или хотя бы отключите все оптимизации Cloudflare.
Мы не используем Cloudflare, но сейчас наблюдаем эту проблему у двух пользователей. В качестве временного решения мы предлагаем им использовать режим инкогнито или другой браузер, но возможно, есть и другие пользователи, которые не сообщают нам об этой проблеме.
Наше сообщество состоит в основном из нетехнических специалистов, поэтому я не думаю, что у них есть необычные настройки браузера.
Можете ли вы предоставить больше информации о том, что вызывает эту проблему? Возможно, я смогу найти решение, исходя из этого.
Да, я имею в виду, что это уже не 2000 год; защита браузеров и предотвращение вредоносного ПО сейчас лучше (насколько я знаю). Сегодня другой пользователь сообщил об этом. Я постараюсь получить от него больше информации и, надеюсь, что-то выясню.
У моего друга тоже возникла эта проблема — я пытаюсь назначить его модератором. Когда я регистрируюсь в режиме инкогнито, всё работает нормально, но у него не получается даже в режиме инкогнито. Поэтому я уверен, что проблема не в моей установке (я использую плагины в своём Discourse, но только официальные), а в его браузере.
Я работаю с ним, чтобы выявить причину, но если дело не в плагинах, я задаюсь вопросом, нет ли различий в версиях Chrome — возможно, что-то происходит «под капотом» браузера, о чём я не знаю, но пока не могу сказать точно. Сейчас пытаюсь узнать его номер версии для сравнения, но он из Калифорнии, и если он разумный, то сейчас спит
Ладно, это звучит не очень логично, но он уже в строю и даёт полезную информацию. Он обновился с версии 75.0.3770.142 до 76.0.3808.87 (64 бита), что само по себе не помогло в основном окне, но после очистки кэша и файлов cookie он смог зарегистрироваться в режиме инкогнито. У него полностью чистая установка Chrome, за исключением блокировщика рекламы.
РЕДАКТИРОВАНИЕ: Я не могу сказать, сработала бы очистка кэша или файлов cookie в версии 75.0.3770.142, так как не могу воспроизвести проблему (не могу), но мне кажется интересным, что это, по крайней мере, помогло моему другу.
Привет! Сегодня я настроил новый экземпляр на community.boid.com и столкнулся с этой ошибкой при попытке зарегистрировать второй аккаунт (как в обычном окне Chrome, так и в режиме инкогнито). Мне удалось решить проблему, вручную удалив сохранённые пароли автозаполнения из своего аккаунта Google и не используя опции автозаполнения в форме регистрации. Я заметил, что Chrome предлагал множество вариантов аутентификации для автозаполнения с других, не связанных сайтов. На других сайтах я такого поведения не наблюдал, поэтому просто хотел поделиться своим опытом.
Насколько я могу судить, это действительно связано с автозаполнением Google Chrome.
У меня есть один способ воспроизвести эту проблему, но он довольно замысловатый. Вам понадобятся два окна браузера.
Откройте ваш сайт в режиме инкогнито и вызовите диалоговое окно «Создать нового пользователя».
Во втором окне браузера войдите в систему как администратор. Перейдите в настройки сайта. Включите опцию «Только по приглашениям», что отключит публичную регистрацию.
В окне браузера в режиме инкогнито попробуйте завершить регистрацию нового пользователя через то самое диалоговое окно «Создать нового пользователя», которое вы вызвали ранее.
У вас не получится, потому что создание новых пользователей больше не разрешено, и вы увидите… нашего старого друга…
По крайней мере, у нас есть этот сценарий воспроизведения, хотя он… безумный.
Мне никогда и ни при каких обстоятельствах не удавалось воспроизвести это каким-либо другим способом, и никто в этой теме также не смог предоставить набор шагов для воспроизведения на стандартном экземпляре Chrome без плагинов. Если вы сможете, пожалуйста, не стесняйтесь и предоставьте эти шаги для воспроизведения..
Отлично, это воспроизводимый случай, с которым мы можем работать, спасибо.
Однако обратите внимание, что всё ещё требуется ручное действие пользователя — щёлкнуть правой кнопкой мыши в поле пароля при создании новой учётной записи или регистрации и нажать «Предложить». Мне нужно обновить страницу клавишей F5 перед запуском диалога регистрации, чтобы это появлялось надёжно, но тогда оно появляется.
Теперь, когда у нас есть своего рода воспроизведение @sam, может быть, мы можем назначить работу?
У нас задействовано два механизма для предотвращения автоматической регистрации аккаунтов ботами.
Мы создаём поле «подтверждение пароля», которое на самом деле является «ловушкой»: мы ожидаем, что в него будет введено очень конкретное значение. Это поле ввода, которое не отображается на экране и находится в скрытом div-элементе.
Мы используем строку проверки, которую JavaScript должен обработать и вернуть обратно.
Если хотя бы одно из условий (1) или (2) не выполняется, мы считаем запрос подозрительным и не регистрируем аккаунт.
То, что делает менеджер паролей Chrome, — это «автозаполнение» пароля в поле new-account-confirm:
Это поле ввода скрыто и не отображается на экране.
У нас есть два варианта решения этой проблемы.
Убрать эту защиту и просто принять как факт, что менеджеры паролей иногда ошибаются здесь. Они не проверяют, видно ли поле «подтверждение пароля», прежде чем заполнить его.
Попросить команду Chrome прекратить это поведение: заполнение невидимых полей ввода — нехорошо. (Я уже обращался с этой просьбой)
Не знаю… Думаю, можно выбрать вариант (1) — это простое изменение. Я могу убрать защиту и заставить JavaScript-клиент вычислять хэш в стиле Bitcoin, чтобы доказать, что он работает. Например, я могу передать клиенту строку и попросить его добавлять к ней числа до тех пор, пока MD5-хэш не закончится хотя бы на 00. Это будет наказанием для ботов и при этом очень дёшево для проверки на сервере.
Заставить ботов бессмысленно вычислять MD5-хэши — это, полагаю, один из способов заставить их буквально оплачивать счета и финансировать мою пенсию на Багамах.
Возможно ли полностью отключить такой механизм и включить старый добрый Google CAPTCHA? Я думаю, это сохранит безопасность и одновременно позволит большему количеству пользователей зарегистрироваться.
Или мы можем подождать ваш хотфикс. Какой вариант, на ваш взгляд, лучше? Мы запускаем крупный поток наших партнёров на нашем форуме в начале следующей недели.
Я только что создал новую учетную запись без каких-либо антивирусных программ, шпионского ПО или другого программного обеспечения в браузере, и столкнулся с той же проблемой. Я решил её, используя метод «Войти через Google», и после этого всё заработало.