我目前正在使用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而不是使用准备好的语句进行查询,但我似乎无法确定它在哪里。
发布于 2019-09-28 16:47:18
如果这是在Joomla中返回一个适当的异常!并将其发送到Joomla!的500error输出,您应该能够从模板(/ error.php / your template /error.php)的模板文件中拦截它。
如果这个文件还不存在,你可以简单地创建它,但要知道它将承担所有异常的责任,因此404将通过这个文件呈现,因此你需要确保它的格式正确。
要捕获500错误并将其重定向到主页,只需在'defined( '_JEXEC‘)或die;语句下面添加以下代码即可。
if($this->error->getCode() == 500){
header("Location: " . $this->baseurl);
die();
}您可以深入了解更多细节,只有在错误消息包含对SQL的引用时才重定向,但从您的描述来看,您实际上并不希望显示任何自定义的500错误消息,因此您可以重定向所有内容。
希望这能有所帮助。KevBallard
https://stackoverflow.com/questions/58055401
复制相似问题