Joomla - Как перенаправить все исключения / ошибки на страницу 404 или вернуться на домашнюю страницу - PullRequest
0 голосов
/ 23 сентября 2019

В настоящее время я использую 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, а не используетподготовленные заявления, но я не могу точно определить, где это.

1 Ответ

0 голосов
/ 28 сентября 2019

Если это возвращает правильное исключение в Joomla!и отправив вас на вывод ошибок Joomla! 500, вы сможете перехватить его из файла error.php вашего шаблона (/templates/yourtemplate/error.php).

Если этот файлеще не существует, вы можете просто создать его, но имейте в виду, что он возьмет на себя ответственность за все исключения, поэтому 404 будет выполнять рендеринг через этот файл, по этой причине вы хотели бы убедиться, что он хорошо форматируется.

Чтобы поймать вашу ошибку 500 и перенаправить ее на домашнюю страницу, это должно быть так же просто, как добавить следующий код чуть ниже «определенного (« _JEXEC ») или умереть; 'оператор.

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

Вы можете углубиться в детали и перенаправить их только в том случае, если сообщение об ошибке содержит ссылку на SQL, но я бы сказал из вашего описания, что вы на самом деле не хотите, чтобы отображались пользовательские сообщения об ошибках 500, так что вы можете перенаправить все.

Надеюсь, это поможет.KevBallard

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...