我正在 Azure Web 应用程序上运行 WordPress,连接到不同 Windows 服务器上的 MySQL 服务器。在 Chrome 中加载上述页面时,它会显示 2 个弹出窗口 403 和禁止。检查控制台会抛出此错误 - ecbcc.js:2 POST /wp-admin/admin-ajax.php 403 (Forbidden)
这在 FireFox 和 IE 上工作正常,但在 Chrome 上不行。有什么想法吗?
这是因为你的缓存。 JS 的缩小版本导致了 Chrome 浏览器中的问题。检查或清除缓存并检查应用于缓存文件的权限。
我遇到了同样的问题,但我花了很长时间才解决。因为我的解决方案不是由缓存、.htaccess、文件权限等常见问题引起的。我应用了here描述的所有可能的解决方案。当我没有任何效果时,然后我与我的托管提供商交谈,问题就在他们这边。事实上,服务器已将我的IP列入黑名单。
以下是我的托管服务提供商的支持回复:
检查后看来是trigger导致的问题 ModSecurity 规则。
ModSecurity 是一个作为 Web 应用程序工作的 Apache 模块 防火墙。它阻止已知的漏洞并提供保护 针对 Web 应用程序的一系列攻击。然而,有时, mod_security 可能会错误地确定某个请求是 恶意的,而实际上是合法的。在这样的情况下,我们 可以将服务器上触发的mod_security规则列入白名单,以便 你可以绕过障碍。
为了正确调查,我们需要您分享您的 IP 地址 和我们。您可以从这里复制它:https://ip.web-hosting.com/
期待您的回复。
出现此错误的原因可能不止一个。除了已接受的答案之外,如果您使用共享托管解决方案作为服务器,那么最好联系该服务的支持人员。此外,如果您使用 Plesk 或 Cpanel,您可以检查服务器日志,看看是否有来自 mod_security 的任何误报规则捕获了错误。然后你可以找到类似这样的错误:
ModSecurity: Warning. Match of "test file" against "REQUEST_FILENAME" required. [file "/etc/httpd/conf/modsecurity.d/rules/custom/006_i360_4_custom.conf"] [line "264"] [id "77140992"]
您可以将该 ID 应用到您的防火墙排除列表中(如果您的托管服务提供的话),然后服务器将不再阻止该请求。
重要提示:如果您不确定自己在做什么,请向您的托管提供商寻求支持。在实时服务器/站点上进行实验并不是最好的选择,我强烈建议避免它。
我在使用 Woocommerce Bookings 时也遇到了这个问题 - 当我尝试在前端进行预订时,我看到以下错误。
“我们无法获取该信息。请联系店主寻求帮助。”
有趣的是,我在 Google 上找不到任何包含该错误文本的内容,因此将其记录在此处以便安全保存 - 以防其他人遇到同样的问题!
同样奇怪的是,我在登录时没有看到此错误 - 仅当在隐身浏览器中以访问者身份使用该网站时。
当我发现这个问题时,我尝试了很多方法,关闭所有插件,切换主题等 - 没有任何效果。然后使用开发工具我可以看到一个错误:“wp-admin/admin-ajax.php 403”
我关闭了 Cloudflare,然后清除缓存并检查 Apache 服务器文件系统以确保清除旧缓存。
为了确定起见,我还删除了 CF 中的所有自定义页面规则(我确实对其中设置的 xmlrpc.php 进行了限制,这可能是罪魁祸首)。
我检查了所有错误日志,但没有运气,然后重新安装了软件。
我还清除了浏览器缓存并在隐身模式下尝试过,但没有成功。
我遇到了这个帖子,它很有帮助。
最后删除 htaccess 和一些“卡住”的 cookie 后,它似乎起作用了。这是一个令人讨厌的粘性 JS bug,很难发现!
伙计们。 我尝试了一切(清除浏览器缓存、删除 htaccess-破坏网站、扩展 WP_limit 和 PHP ini),但仍然没有任何效果。
对我有用的是:我在 Cpanel 上为受影响的网站禁用了 ModSecurity,这解决了 Elementor 服务器错误 403 问题。完成所有更新后我会重新启用它。
我希望有一个更永久的解决方案。
问候!