首页 > 解决方案 > Joomla - 如何将所有异常/错误重定向到 404 页面或返回主页

问题描述

我目前正在使用 Joomla,我们的 URI 中有一个小的安全漏洞。目前,它直接向用户显示异常/错误,如下所示:

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 注入风险。

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

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

标签: joomla

解决方案


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

如果此文件尚不存在,您可以简单地创建它,但请注意它将承担所有异常的责任,因此 404 将通过此文件呈现,因此您需要确保其格式正确。

要捕获您的 500 错误并将其重定向到您的主页,它应该像在 'defined('_JEXEC') 或 die;' 下方添加以下代码一样简单 陈述。

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

如果错误消息包含对 SQL 的引用,您可以更详细地进行重定向,但我会从您的描述中说,您真的不希望显示任何自定义 500 错误消息,因此您可以重定向所有内容。

希望这可以帮助。凯夫巴拉德


推荐阅读