joomla - 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! 的 500 错误输出,您应该能够从模板 (/templates/yourtemplate/error.php) 中的 error.php 文件中截取它。
如果此文件尚不存在,您可以简单地创建它,但请注意它将承担所有异常的责任,因此 404 将通过此文件呈现,因此您需要确保其格式正确。
要捕获您的 500 错误并将其重定向到您的主页,它应该像在 'defined('_JEXEC') 或 die;' 下方添加以下代码一样简单 陈述。
if($this->error->getCode() == 500){
header("Location: " . $this->baseurl);
die();
}
如果错误消息包含对 SQL 的引用,您可以更详细地进行重定向,但我会从您的描述中说,您真的不希望显示任何自定义 500 错误消息,因此您可以重定向所有内容。
希望这可以帮助。凯夫巴拉德
推荐阅读
- c++ - (C++)我正在尝试从文本文件中读取和输出随机行,并且在运行它时不断收到“浮点异常(核心转储)”
- jquery - jQuery Validation 验证元素,即使设置为“required: false”
- javascript - 我将如何在 vanilla JS 中执行此 ajax jquery?
- c - C – 如何在三元运算符中使用退出/返回语句?
- c# - 创建没有时区同步的每周计划任务
- r - .subset2(x, i, exact = exact) 中的错误:R 中的下标越界
- xmltodict - xmltodict parse/unparse 产生不产生相同的 xml 文件
- java - 验证子字符串是否相等
- sql - 使用子句 IN 从 sql 转换为 jpql
- php - 无法从 Laravel 表单请求验证中的对象数组中排除空值?