We cannot detect if your account was created, please ensure you have cookies enabled

Это отличная информация. Я не видел конкретно проблем с CORS, но я изучу это подробнее. Если я что-то найду, я опубликую это здесь.

После просмотра скриптов кажется, что это связано с Cloudflare. Вы используете Cloudflare? https://boards.neocron.org/cdn-cgi/apps/head/QNWX_8GN-3K7wUr6Qa73LdoD3JI.js. Мы его не используем, поэтому, вероятно, не сталкивались с этой конкретной проблемой.

Спасибо!

Разобравшись, мы обнаружили, что у нас был включен параметр Настройки -> Безопасность -> Политика безопасности контента.

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

Похоже, Chrome ужесточил свою CSP. → Manifest - Content Security Policy  |  Chrome Extensions  |  Chrome for Developers

Ммм, боюсь, что у нас это отключено, это должно быть что-то другое, вызывающее эту проблему

Приносим извинения :frowning:

У нас параметр DISCOURSE_ENABLE_CORS установлен в true, а разрешённые CORS-источники настроены следующим образом…

Не знаем, поможет ли это вам или ваша конфигурация может отличаться?

У нас также включен флаг CORS, но не уверен, что это связано.

Это проблема CSP, а не CORS.

Это настройка с подпапкой?

РЕДАКТИРОВАНИЕ: вернувшись к этому позже и посмотрев ещё раз, я понял, что происходит.

Я могу подтвердить, что это было внедрено CF.

Мы НАСТОЙЧИВО НЕ РЕКОМЕНДУЕМ отключать CSP на продакшн-сайте. Вместо этого, если возможно, отключите Cloudflare (у нас было МНОГО, МНОГО случаев поддержки, связанных с тем, что CF негативно влияет на JS Discourse), или хотя бы отключите все оптимизации Cloudflare.

Это создаёт огромные уязвимости в безопасности вашего сайта. Мы НАСТОЯТЕЛЬНО РЕКОМЕНДУЕМ НЕ делать этого. Это крайне опасный совет.

Привет @supermathie,

Мы не используем Cloudflare, но сейчас наблюдаем эту проблему у двух пользователей. В качестве временного решения мы предлагаем им использовать режим инкогнито или другой браузер, но возможно, есть и другие пользователи, которые не сообщают нам об этой проблеме.

Наше сообщество состоит в основном из нетехнических специалистов, поэтому я не думаю, что у них есть необычные настройки браузера.

Можете ли вы предоставить больше информации о том, что вызывает эту проблему? Возможно, я смогу найти решение, исходя из этого.

Спасибо!

Мы тоже хотели бы точно знать.

На экране «Создание аккаунта» есть скрытое поле ввода, которое проверяется на целостность при создании аккаунта.

Если это поле было изменено, создание аккаунта не удаётся.

Не могли бы вы попросить ваших пользователей поочерёдно отключать свои плагины, пока они не найдут виновника?

У нас также открыт тикет в проекте Chrome для расследования этого поведения.

Позвольте напомнить вам этот скриншот с компьютера нетехнического пользователя:

Imgur

Нельзя ничего предполагать :slight_smile:

Да, я имею в виду, что это уже не 2000 год; защита браузеров и предотвращение вредоносного ПО сейчас лучше (насколько я знаю). Сегодня другой пользователь сообщил об этом. Я постараюсь получить от него больше информации и, надеюсь, что-то выясню.

Спасибо!

Отлично. Мы очень хотим это четко определить, поэтому дайте нам знать.

У моего друга тоже возникла эта проблема — я пытаюсь назначить его модератором. Когда я регистрируюсь в режиме инкогнито, всё работает нормально, но у него не получается даже в режиме инкогнито. Поэтому я уверен, что проблема не в моей установке (я использую плагины в своём Discourse, но только официальные), а в его браузере.

Я работаю с ним, чтобы выявить причину, но если дело не в плагинах, я задаюсь вопросом, нет ли различий в версиях Chrome — возможно, что-то происходит «под капотом» браузера, о чём я не знаю, но пока не могу сказать точно. Сейчас пытаюсь узнать его номер версии для сравнения, но он из Калифорнии, и если он разумный, то сейчас спит :stuck_out_tongue:

Ладно, это звучит не очень логично, но он уже в строю и даёт полезную информацию. Он обновился с версии 75.0.3770.142 до 76.0.3808.87 (64 бита), что само по себе не помогло в основном окне, но после очистки кэша и файлов cookie он смог зарегистрироваться в режиме инкогнито. У него полностью чистая установка Chrome, за исключением блокировщика рекламы.

РЕДАКТИРОВАНИЕ: Я не могу сказать, сработала бы очистка кэша или файлов cookie в версии 75.0.3770.142, так как не могу воспроизвести проблему (не могу), но мне кажется интересным, что это, по крайней мере, помогло моему другу.

Привет! Сегодня я настроил новый экземпляр на community.boid.com и столкнулся с этой ошибкой при попытке зарегистрировать второй аккаунт (как в обычном окне Chrome, так и в режиме инкогнито). Мне удалось решить проблему, вручную удалив сохранённые пароли автозаполнения из своего аккаунта Google и не используя опции автозаполнения в форме регистрации. Я заметил, что Chrome предлагал множество вариантов аутентификации для автозаполнения с других, не связанных сайтов. На других сайтах я такого поведения не наблюдал, поэтому просто хотел поделиться своим опытом.

Насколько я могу судить, это действительно связано с автозаполнением Google Chrome.

У меня есть один способ воспроизвести эту проблему, но он довольно замысловатый. Вам понадобятся два окна браузера.

  • Откройте ваш сайт в режиме инкогнито и вызовите диалоговое окно «Создать нового пользователя».

  • Во втором окне браузера войдите в систему как администратор. Перейдите в настройки сайта. Включите опцию «Только по приглашениям», что отключит публичную регистрацию.

  • В окне браузера в режиме инкогнито попробуйте завершить регистрацию нового пользователя через то самое диалоговое окно «Создать нового пользователя», которое вы вызвали ранее.

У вас не получится, потому что создание новых пользователей больше не разрешено, и вы увидите… нашего старого друга…

По крайней мере, у нас есть этот сценарий воспроизведения, хотя он… безумный. :crazy_face:

Мне никогда и ни при каких обстоятельствах не удавалось воспроизвести это каким-либо другим способом, и никто в этой теме также не смог предоставить набор шагов для воспроизведения на стандартном экземпляре Chrome без плагинов. Если вы сможете, пожалуйста, не стесняйтесь и предоставьте эти шаги для воспроизведения..

Я воспроизвёл эту ошибку на try.discourse.org:


Посмотрите видео со всем процессом: https://drive.google.com/file/d/19s20cgdz78XYpgHePkWRBFXseY-Znt_P/view?usp=sharing
Это происходило КАЖДЫЙ раз, когда я использовал предложенный сгенерированный пароль.
Так… как мы можем решить эту проблему для наших клиентов?

Отлично, это воспроизводимый случай, с которым мы можем работать, спасибо.

Однако обратите внимание, что всё ещё требуется ручное действие пользователя — щёлкнуть правой кнопкой мыши в поле пароля при создании новой учётной записи или регистрации и нажать «Предложить». Мне нужно обновить страницу клавишей F5 перед запуском диалога регистрации, чтобы это появлялось надёжно, но тогда оно появляется.

Теперь, когда у нас есть своего рода воспроизведение @sam, может быть, мы можем назначить работу?

У нас задействовано два механизма для предотвращения автоматической регистрации аккаунтов ботами.

  1. Мы создаём поле «подтверждение пароля», которое на самом деле является «ловушкой»: мы ожидаем, что в него будет введено очень конкретное значение. Это поле ввода, которое не отображается на экране и находится в скрытом div-элементе.

  2. Мы используем строку проверки, которую JavaScript должен обработать и вернуть обратно.

Если хотя бы одно из условий (1) или (2) не выполняется, мы считаем запрос подозрительным и не регистрируем аккаунт.

То, что делает менеджер паролей Chrome, — это «автозаполнение» пароля в поле new-account-confirm:

{{input type="password" value=accountPasswordConfirm id="new-account-confirmation" autocomplete="new-password"}}

Это поле ввода скрыто и не отображается на экране.

У нас есть два варианта решения этой проблемы.

  1. Убрать эту защиту и просто принять как факт, что менеджеры паролей иногда ошибаются здесь. Они не проверяют, видно ли поле «подтверждение пароля», прежде чем заполнить его.

  2. Попросить команду Chrome прекратить это поведение: заполнение невидимых полей ввода — нехорошо. (Я уже обращался с этой просьбой)

Не знаю… Думаю, можно выбрать вариант (1) — это простое изменение. Я могу убрать защиту и заставить JavaScript-клиент вычислять хэш в стиле Bitcoin, чтобы доказать, что он работает. Например, я могу передать клиенту строку и попросить его добавлять к ней числа до тех пор, пока MD5-хэш не закончится хотя бы на 00. Это будет наказанием для ботов и при этом очень дёшево для проверки на сервере.

Заставить ботов бессмысленно вычислять MD5-хэши — это, полагаю, один из способов заставить их буквально оплачивать счета и финансировать мою пенсию на Багамах.

Возможно ли полностью отключить такой механизм и включить старый добрый Google CAPTCHA? Я думаю, это сохранит безопасность и одновременно позволит большему количеству пользователей зарегистрироваться.

Или мы можем подождать ваш хотфикс. Какой вариант, на ваш взгляд, лучше? Мы запускаем крупный поток наших партнёров на нашем форуме в начале следующей недели.

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