アカウントの作成を検出できません。クッキーが有効になっていることを確認してください。

これは素晴らしい情報です。特に 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 が Discourse の JS に悪影響を及ぼすというサポート事例は 多数 あります)。少なくとも、すべての Cloudflare の最適化 を無効化してください。

これにより、あなたのサイトに重大なセキュリティ上の欠陥が生じます。私たちは、そのような対応を絶対にしないよう強く推奨します。非常に危険な助言です。

こんにちは、@supermathie さん、

当社は Cloudflare を使用していませんが、現在 2 人のユーザーでこの問題が発生しています。私たちが提供している回避策は、シークレットモードまたは別のブラウザを使用することですが、他にもこの問題について報告していないユーザーがいるかもしれません。

当社のコミュニティは主に非技術系の方々で構成されているため、特殊なブラウザ設定をしているとは考えにくいです。

この問題を引き起こしている要因について、もう少し詳しい情報を提供していただけますか?そこから解決策を見出せるかもしれません。

ありがとうございます!

私たちが正確に把握できているならいいのですが。

「アカウント作成」画面には、アカウント作成時に整合性をチェックされる隠し入力フィールドが存在します。

このフィールドが改ざんされていると、アカウント作成が失敗します。

ユーザー様にプラグインを一つずつ無効化させ、原因となっているものを特定していただくようお願いいただけますでしょうか?

また、この挙動を調査するため、Chrome プロジェクト側にチケットを提出しています。

技術に詳しくない方のパソコンから取得したこちらのスクリーンショットをお見せします。

Imgur

何も前提を仮定することはできません :slight_smile:

はい、2000 年代とは違いますし、ブラウザのセキュリティやマルウェア対策も以前より良くなっていると思います(私はそう信じています)。別のユーザーが今日これを報告してくれましたので、彼らからさらに情報を集めて、何か解決策を見つけられればと思います。

ありがとうございます!

素晴らしい。ぜひこの件を確実に進めたいので、ご一報ください。

友人も同じ問題に直面しています。彼をモデレーターとして招待しようとしているのですが、シークレットウィンドウでサインアップすると正常に動作するものの、彼はどうしてもできません。そのため、私の環境に問題はない(Discourse で公式プラグインのみを使用しています)と確信していますが、彼のブラウザ側に何か問題があるようです。

現在、問題の特定に取り組んでいますが、プラグインが原因でない場合、Chrome のバージョンに何か問題があるのではないか、つまりブラウザ内部で私が把握していない何かが起きている可能性を考えています。ただ、現時点では確定的なことは言えません。現在、彼のバージョン番号を入手して比較しようとしていますが、彼はカリフォルニア在住なので、常識的な人なら今は眠っているでしょう :stuck_out_tongue:

はい、理にかなってはいませんが、彼は目覚めており、情報を提供してくれます。75.0.3770.142 から 76.0.3808.87(64 ビット)にアップデートしましたが、メインウィンドウではそれだけでは解決しませんでした。しかし、キャッシュとクッキーをクリアした後、シークレットウィンドウでサインアップできるようになりました。彼は Adblocker を除き、完全に標準的な Chrome 設定を使用しています。

編集:75.0.3770.142 においてキャッシュまたはクッキーのクリアが有効かどうかは、再現できないため(私にはできません)お答えできませんが、少なくとも友人のケースでは効果があったように見えるのは興味深いです。

こんにちは。本日、community.boid.com にて新しいインスタンスをセットアップしたところ、2 番目のアカウントの登録を試みた際に以下のエラーメッセージが表示されました(通常の Chrome ウィンドウでもシークレットモードでも同様です)。この問題は、Google アカウントから自動入力されたパスワードを手動で削除し、サインアップフォームで自動入力のオプションを使用しなかったことで解決しました。Chrome が、無関係な他のウェブサイトから複数の認証オプションを自動入力として提案していたことに気づきました。他のサイトではこのような挙動を見たことがなかったので、私の経験について共有させていただきました。

私の判断では、これは Google Chrome の自動入力機能に関連しているようです。

これを再現させる方法は一つありますが、少し複雑です。2 つのブラウザウィンドウが必要です。

  • シークレットモードでサイトをロードし、「新規ユーザー作成」ダイアログを開きます。

  • 2 つ目のブラウザウィンドウで、管理者としてログインします。サイト設定に移動し、「招待のみ」を有効にします。これにより、公開登録が無効になります。

  • シークレットブラウザで、先ほど開いた「新規ユーザー作成」ダイアログを使って、新規ユーザーとしてサインアップを試みます。

できません。新規ユーザーの作成が許可されていないため、以下のようなエラーが表示されます。そう、我々の古くからの友人がですね。

少なくともこの再現手順はありますが、ちょっと狂気の沙汰ですね :crazy_face:

私はこれまでに、他の方法でこれを再現したことは一度もありません。また、このトピックに参加している誰一人として、プラグインをインストールしていないデフォルトの Chrome インスタンス上で再現手順を提供できた人はいません。もし可能であれば、ぜひ再現手順を教えてください。

try.discourse.org でこのエラーを再現しました:


すべてのプロセスの動画をご覧ください:https://drive.google.com/file/d/19s20cgdz78XYpgHePkWRBFXseY-Znt_P/view?usp=sharing
これは、提案された生成パスワードを使用するたびに発生しました。
そこで、クライアントのこの問題をどのように解決すればよいでしょうか?

はい、とても良いですね。再現手順が得られましたので、これで対応できます。ありがとうございます。

ただし、まだユーザーの手動操作が必要です。新しいアカウント作成/サインアップ時にパスワードフィールドで右クリックし、「提案」を押す必要があります。サインアップダイアログを開始する前に F5 でページをリフレッシュしないと、この機能が確実に表示されませんが、リフレッシュすれば表示されます。

これで何らかの再現手順が得られましたので、@sam さん、作業を割り当ててよろしいでしょうか?

アカウントを盲目的に登録するボットを阻止するために、2 つの仕組みを運用しています。

  1. 「パスワード確認」フィールドがあるように見せかけ、実際には「トリック」として機能させています。非常に特定の値が入力されることを期待しています。これは画面上には表示されない入力ボックスで、非表示の div 内に配置されています。

  2. JavaScript が処理して返すことを期待するチャレンジ文字列を用意しています。

(1) または (2) のいずれかが正しく行われない場合、リクエストを疑わしいものとみなし、アカウント登録を行いません。

Chrome のパスワードマネージャーが行っていることは、new-account-confirm フィールドにパスワードを「入力」することです。

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

この INPUT は非表示であり、画面上には表示されません。

ここでは 2 つの選択肢があります。

  1. この保護を撤廃し、パスワードマネージャーがここで誤作動を起こすのは仕方がないと受け入れることです。彼らは「パスワード確認」フィールドが実際に表示されているかを確認せずに、入力値を埋めてしまいます。

  2. Chrome チームに、非表示の INPUT に情報を埋める这种行为を止めるよう要請することです(これは好ましくありません)。(私が報告しました)

どちらにするべきか迷っています… (1) で進めるのが簡単そうですね。この保護を撤廃し、JS クライアントがビットコイン方式でハッシュを計算して、実際に処理を行っていることを証明するように変更することもできます。例えば、クライアントに文字列を与え、MD5 の末尾が少なくとも 00 になるまで数字を付加させるように指示します。これにより、ボットにとってはコストがかかりますが、サーバー側での確認は極めて安価です。

ボットに MD5 を盲目的に計算させることは、彼らに実質的に請求書を支払い、私のバハマでの退職資金を調達させる方法の一つと言えるかもしれません。

そのような仕組みを完全に無効化し、昔ながらの Google CAPTCHA を有効にすることは可能でしょうか?これによりセキュリティを維持しつつ、より多くのユーザーの登録を可能にできると思います。

あるいは、貴社のホットフィックスを待つこともできます。どちらのオプションが最適だとお考えですか?来週初めに、当フォーラムでパートナーの大きなストリームを開始予定です。

ブラウザにスパム対策やスパイウェア対策ソフトが一切入っていない状態で新しいアカウントを作成しましたが、同じ問題に遭遇しました。その後、「Googleでログイン」の方法を使ったら解決しました。