Как в nginx обработать неизвестные/несуществующие расширения?
Нашёл интересный баг/ошибку в последней версии Joomla. Скорее всего есть и в предыдущих версиях.
Сама ошибка:
Warning: Parameter 1 to plgSystemRsseo::handleError() expected to be a reference, value given in Unknown on line 0
Fatal error: Uncaught Exception: Представление не найдено [name, type, prefix]: article, faf, contentView in /home/www/site/boundlessage/libraries/legacy/controller/legacy.php:885 Stack trace: #0 /home/www/site/boundlessage/libraries/legacy/controller/legacy.php(645): JControllerLegacy->getView('article', 'faf', 'contentView', Array) #1 /home/www/site/boundlessage/components/com_content/controller.php(113): JControllerLegacy->display(false, Array) #2 /home/www/site/boundlessage/libraries/legacy/controller/legacy.php(728): ContentController->display() #3 /home/www/site/boundlessage/components/com_content/content.php(38): JControllerLegacy->execute('') #4 /home/www/site/boundlessage/libraries/cms/component/helper.php(405): require_once('/home/www/site/...') #5 /home/www/site/boundlessage/libraries/cms/component/helper.php(380): JComponentHelper::executeComponent('/home/www/site/...') #6 /home/www/site/boundlessage/libraries/cms/application/site.php(191): JComponentHelper::renderComponent('com_content') in /home/www/site/boundlessage/libraries/legacy/controller/legacy.php on line 885
Вываливается, при удовлетворении следующих условий
1. Файл не существует на диске/накопителе.
2. Расширение неизвестно или не существует.
3. Само имя файла без расширения может быть любым.
Т.е раз вопрос возникает на стороне Jooml'ы нужно просто не пустить запрос, если
Файл не существует
Расширение неизвестно
А и да, nginx отдаёт все неизвестные расширения джумле.
Как можно с помощью location выбрать только неизвестные расширения
и успешно выбросить 404.
Т.е все расширения, которые не входят в например этот список:
(jpe|jpg|jpeg|jp2|jpe2|png|gif|bmp|css|js|swf|html|mpg|mp3|mpeg|mp4|avi|wav|ogg|ogv|xls|xlsx|doc|docx|ppt|pptx|zip|rar|pdf|xps|txt|7z|svg|odt|ods|odp|flv|mov|htm|ttf|woff|eot|JPG|JPEG|PNG|GIF|CSS|JS|TTF|WOFF|EOT)
Чувствую, что в умелых руках это серьёзная уязвимость.
Заранее большое спасибо за помощь.
Если с конфигом не можете помочь, а доступ к багтрекеру Jooml'ы имеете то помогите разрам найти и исправить баг сообщив им о нём.
А теперь внимание бонус:
https://www.joomla.org/core-features.faw
Официальный сайт Joomla, как вы поняли тоже валится из-за этой ошибки.
Обратился к разрам. Тоже понять не могу из-за чего ошибка.
https://issues.joomla.org/tracker/joomla-cms/10419