Как пропустить проверку типа MIME для файлов с расширениями .OFT на MediaWiki

В моей частной вики я включил загрузку шаблонов электронной почты Microsoft Outlook 2016 (.oft) с помощью $wgFileExtensions. Но при загрузке оф файла столкнулся с ошибкой File extension ".oft" does not match the detected MIME type of the file (application/sla).

Есть ли способ исправить или преодолеть это? Или, возможно, способ пропустить проверки MIME только для часто используемых файлов? И если да, не могли бы вы помочь мне с необходимым кодом, пожалуйста?

Я также хотел бы, чтобы Outlook запускался при нажатии на ссылку файла. Но это не так важно, как исправление ошибки... Спасибо за любую помощь.


person Rehman    schedule 23.08.2020    source источник


Ответы (2)


Есть быстрый способ и более безопасный способ.

Самый простой вариант — разрешить загрузку, если тип MIME не соответствует расширению. Вы можете сделать это, добавив следующее в свой LocalSettings.php (убедившись, что в другой строке нет конфликтующего оператора:

$wgStrictFileExtensions = "false";

Отключение $wgStrictFileExtensions представляет собой серьезную угрозу безопасности, как указано в Mediawiki. документации, поэтому делайте это только в том случае, если вы доверяете всем пользователям с правами на загрузку. Это даст пользователям предупреждение о типе файла, но все равно загрузит файл. Чтобы вообще не проверять MediaWiki, полностью отключите $wgVerifyMimeType с помощью:

$wgVerifyMimeType= "false";

Более правильный способ — сообщить MediaWiki, что «application/sla» подходит для файлов .oft. База данных типа MIME по умолчанию ожидает файлы с таким расширением как шаблоны формул ODF. Вы можете изменить это, предоставив MediaWiki свой собственный файл определения для типов MIME. В Linux у вас может быть — например, в Debian это /etc/mime.types. Вы можете добавить строку

application/sla                oft

И убедитесь, что в LocalSettings.php установлен $wgMimeTypeFile для ссылки на этот файл. В примере с Дебианом:

$wgMimeTypeFile = "/etc/mime.types";
person Joris    schedule 01.09.2020

Прочитав дальше, я наконец нашел не хакерское решение для загрузки .oft:

  1. Если это еще не сделано, добавьте .oft файлов в список поддерживаемых расширений ( $wgFileExtensions)
  2. В MediaWiki 1.34.2 отредактируйте /includes/libs/mime/mime.types и измените application/sla stl на application/sla stl oft. (Насколько я знаю, этот каталог изменен для 1.35+)

Вот и все! Без понижения и изменения безопасности я теперь могу загружать .oft файлов.

Надеюсь, это поможет другим бороться с этим.

person Rehman    schedule 09.09.2020