Кэширование xml-файлов без типа application/octet-stream

Можно ли в DiskCache файлы без изображений, не теряя своего типа, отображать в браузере?

Я следовал инструкциям на этой странице: http://imageresizing.net/docs/v4/howto/cache-non-images

В соответствии с инструкциями я устанавливаю PostAuthorizeRequestStart = True и cache = Always в событии PostAuthorizeRequestStart. Я также добавил.unknown mimeType в конфиге.

Однако, когда запрашивается XML-файл, он возвращается как тип содержимого "application/octet-stream" вместо "text/xml".

Есть ли способ сохранить исходный тип содержимого файлов без изображений?

1 ответ

Боюсь, что нет - по крайней мере, без изменения исходного кода ImageResizer.

Мы приняли решение установить приоритеты безопасности и сохранить все файлы с расширением ".unknown", чтобы предотвратить их случайное выполнение IIS в виде сценариев. IIS отправляет тип содержимого на основе расширения файла, и (в зависимости от конфигурации IIS) расширение определяет, должен ли файл выполняться как код.

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

Код, который необходимо будет изменить (в v4+), будет HttpModuleRequestAssistant.EstimateResponseInfo. Вместо того, чтобы сразу вернуться к "неизвестному", можно обратиться ко второму белому списку.

Если вы сообщите об этом на GitHub, вы можете подписаться на уведомления. Мы определенно принимаем запрос на выборку, обращающийся к этому запросу, особенно во время текущей предварительной версии v4, когда изменения в конвейере менее рискованны.

Другие вопросы по тегам