Joomla - 如何将所有 exceptions/error 重定向到 404 页面或返回主页

Joomla - How to redirect all exceptions/error to a 404 page or back to home page

我目前正在使用 Joomla,我们的应用程序中有一个小的安全漏洞 网址。目前,它像这样直接向用户显示 Exception/Error:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 

我认为存在 SQL 注入风险。

我该如何继续并强制所有 exceptions/errors 重定向到主页?仅当有人直接操作 URI 而不是通过单击页面时才会发生此错误。

如果有帮助,我相信这个问题是由我们使用的一个组件引起的,该组件直接使用 URI 进行查询而不是使用准备好的语句,但我似乎无法确定它在哪里。

如果这在 Joomla! 中返回正确的异常并将您发送到 Joomla! 的 500 错误输出,您应该能够从模板中的 error.php 文件中拦截它 (/templates/yourtemplate/error.php).

如果此文件尚不存在,您可以简单地创建它,但请注意,它将对所有异常负责,因此 404 将通过此文件呈现,因此您需要确保它格式很好

要捕获您的 500 错误并将其重定向到您的主页,只需在“defined( '_JEXEC' ) or die;' 下方添加以下代码即可。声明。

if($this->error->getCode() == 500){
  header("Location: " . $this->baseurl);
  die();
}

您可以更详细地说明,只有在错误消息包含对 SQL 的引用时才重定向,但我想从您的描述中得知您真的不希望显示任何自定义 500 错误消息,所以你可以重定向所有内容。

希望这对您有所帮助。 凯夫巴拉德