这些信息非常有用。我尚未具体遇到过 CORS 问题,但我会进一步深入调查。如果有任何发现,我会在这里发布。
看到这些脚本后,感觉可能与 Cloudflare 有关,你们是否使用了 Cloudflare?https://boards.neocron.org/cdn-cgi/apps/head/QNWX_8GN-3K7wUr6Qa73LdoD3JI.js。我们并没有使用它,因此可能尚未遇到这个具体问题。
谢谢!
这些信息非常有用。我尚未具体遇到过 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
嗯,恐怕我们已禁用了该功能,这应该是导致此问题的另一个原因。
我们也启用了 CORS 标志,但不确定这是否相关。
这是一个 CSP 问题,而非 CORS。
这是子目录配置吗?
编辑:回过头来再次查看,我明白问题所在了。
我可以确认这是由 CF 注入的。
我们强烈不建议在生产环境中禁用 CSP。相反,如果可能,请关闭 Cloudflare(我们已收到 大量 关于 CF 对 Discourse 的 JavaScript 产生负面影响的工单),或者至少禁用所有 Cloudflare 优化。
这会在您的网站上造成巨大的安全漏洞。我们强烈建议您不要这样做。这是一个非常糟糕的建议。
你好 @supermathie,
我们并未使用 Cloudflare,但最近有两位用户遇到了这个问题。我们给他们的临时解决方案是使用无痕模式或其他浏览器,但可能还有其他用户未向我们报告此问题。
我们的社区用户大多为非技术人员,因此我认为他们的浏览器设置应该比较常规。
能否提供更多关于是什么触发了此问题的信息?这样我或许可以据此找到解决方案。
谢谢!
是啊,毕竟现在不是2000年了,浏览器安全性和恶意软件防护都更好了(我相信)。今天有另一位用户报告了这个问题,我会尝试从他们那里获取更多详情,希望能找到解决办法。
谢谢!
太好了。我们非常希望能把这件事落实,请随时告知我们。
我的一位朋友也遇到了同样的问题——我正在尝试邀请他担任版主。当我在无痕窗口中注册时,一切正常,但他在无痕窗口中也无法操作。因此,我确信问题不出在我的安装上(我在使用 Discourse 时确实安装了插件,但都是官方插件),而是出在他的浏览器上。
我正在与他一起排查问题。如果这不是插件的问题,我怀疑可能与我们的 Chrome 版本有关——也许浏览器底层有什么我不知道的情况在运行,但目前我还无法确定。我目前正在尝试获取他的版本号以便对比,但他是加州人,所以如果他够明智的话,现在应该已经睡着了 ![]()
好的,这不太合理,但他现在已清醒且能提供信息。他从 75.0.3770.142 更新到了 76.0.3808.87(64 位),这本身并未解决主窗口的问题,但在清除缓存和 Cookie 后,他能够在无痕窗口中注册。除了广告拦截器外,他使用的是完全原生的 Chrome 设置。
编辑:由于我无法复现该问题(我无法做到),因此无法确定在 75.0.3770.142 版本上清除缓存或 Cookie 是否有效。不过,我发现至少对我朋友来说,这似乎起到了作用,这一点颇有趣。
你好,我今天在 community.boid.com 上设置了一个新实例,在尝试注册第二个账户时遇到了此错误消息(无论是在普通 Chrome 窗口还是无痕模式下均出现)。我通过手动删除 Google 账户中的自动填充密码,并在注册表单中不使用任何自动填充选项,成功解决了该问题。我注意到 Chrome 建议从其他无关网站自动填充多种不同的身份验证选项。我在其他网站上尚未见过此类行为,因此想分享一下我的经历。据我所知,这似乎确实与 Google Chrome 的自动填充功能有关。
我在 try.discourse.org 上复现了此错误:
请观看整个过程的视频:https://drive.google.com/file/d/19s20cgdz78XYpgHePkWRBFXseY-Znt_P/view?usp=sharing 每次使用建议生成的密码时都会发生这种情况。那么……我们该如何为客户解决这个问题?好的,非常好,这是一个我们可以处理的复现步骤,感谢提供。
不过请注意,这仍然需要用户手动操作——在创建新账户/注册时,在密码字段上右键点击并点击“建议”。我必须先按 F5 刷新页面,然后再启动注册对话框,才能稳定地看到该选项,但之后确实会出现。
既然我们已经有了一种复现方式,@sam,我们是否可以分配这项工作了?
我们目前采用两种机制来防止机器人盲目注册账户。
我们设置了一个看似“密码确认”的字段,实际上是一个“陷阱”:我们期望该字段的值非常特定。这是一个输入框,不会在屏幕上渲染,而是放在一个隐藏的 div 中。
我们提供一个挑战字符串,期望 JavaScript 对其进行处理并原样返回。
如果上述(1)或(2)任一条件未正确满足,我们将该请求视为可疑,并不注册账户。
Chrome 密码管理器目前的行为是“自动填充”新账户确认字段中的密码:
{{input type="password" value=accountPasswordConfirm id="new-account-confirmation" autocomplete="new-password"}}
这个 INPUT 字段是隐藏的,不会在屏幕上显示。
对此我们有两个替代方案:
移除该保护机制,接受密码管理器在此处出错的现实。它们通常不会在填充前检查“确认密码”字段是否真正可见。
联系 Chrome 团队,请他们停止这种行为:向不可见的 INPUT 字段填充信息并不合适。(我已提交相关反馈)
我也不太确定……或许我们可以选择方案(1),这很容易实现。我可以移除该保护机制,并让 JavaScript 客户端以类似比特币的方式计算哈希值,以证明其确实在执行计算工作。例如,我可以给客户端一个字符串,让它不断追加数字,直到生成的 MD5 值至少以 00 结尾。这样对机器人来说计算成本很高,而对服务器验证来说却极其廉价。
让机器人盲目计算 MD5,我想,也算是让它们实实在在为我的巴哈马退休计划买单的一种方式吧。
是否有可能完全禁用此类机制并启用传统的 Google CAPTCHA?我认为这样既能保持安全性,又能让更多用户注册。
或者我们可以等待你们的紧急修复。您觉得哪种方案更好?我们计划在下周初在论坛上启动合作伙伴的大型推广活动。
我刚创建了一个新账号,浏览器中完全没有反垃圾邮件/间谍软件/软件,却遇到了同样的问题。我通过使用“使用 Google 登录”的方法解决了它,之后便正常了。