IE и Content-disposition встроенные против расширений-токенов - PullRequest
4 голосов
/ 01 марта 2010

Преамбула

То есть IE Mime-Type сниффинг . Старые новости этой части.

Предложения о том, как бороться с этим, обычно бывают похожи на «поставлять доверии IE для контента» (т. Е. Все, что не является текстовым / простым или прикладным / октетным потоком) или «добавлять посторонние данные в начале» файла, который определенно относится к типу, который вы обслуживаете '.

Теперь я работаю над приложением, которое должно разрешать вложения сообщений (например, в сообщениях электронной почты), иногда отображаться в строке (опять же, как в сообщениях электронной почты), и мы хотим Закройте XSS векторов. Обнюхивание Mime в IE (в непатченном IE6-, который я должен поддерживать, например, IE6 / Win2000) является одним из таких векторов - файл text/plain с html-содержимым будет запускаться как html. На этом этапе перекодировка невозможна, изменение предоставленных пользователем вложений может произойти только в том случае, если нет абсолютно никаких сомнений в отношении вредоносности файла - и кто-то может захотеть отправить HTML в виде текста.

Теперь, В статье MSDN Microsoft подразумевается, что ситуацию легче исправить, чем рекламируется:

Если Internet Explorer знает Content-Type указан, и нет Content-Disposition данные, Интернет Исследователь выполняет "MIME снифф", [...]

Отлично!

За исключением того, что у меня нет IE или текущих средств для его надежной установки (я понимаю, что это довольно печальное состояние для веб-разработчика, я надеюсь исправить это в ближайшее время), и это серая теория, которую я не могу похоже, подтверждается так или иначе. Местные источники говорят, что строка - это фигня - IE будет мимить нюхать все, что Content-Disposition: inline / <default> и недостаточно специфично для его вкусов в -Type .

А как насчет x- * ( 'extension-token' в RFC )?

Попытка поиска в Google того, как браузеры обрабатывают Расположение содержимого: <extension-token> ничего не дало (хотя я могу просто делать это неправильно, мое понимание Google в последнее время серьезно ухудшается). Я нашел один вопрос , который выглядел многообещающе, но оказался недоразумением со стороны автора темы, а это означало, что ход мыслей там никогда не рассматривался.

Вопрос (ы)

Действительно ли IE нюхает Mime, если вы явно передаете Content-Disposition: inline ?

Если так: Кто-нибудь здесь знает, как браузеры обрабатывают Content-Disposition: <extension-token>?

Если они делают это таким образом, который для моих целей является доброкачественным, предполагая, что он является синонимом значения по умолчанию (фактически «встроенный», хотя я слышал, что он нигде не определен?), Достаточно ли он специфичен для IE не Миму понюхать? Или я на самом деле стреляю себе в ногу, думая преследовать этот путь?

Ответы [ 3 ]

3 голосов
/ 01 марта 2010

Примечание:

"Примечание. В Internet Explorer 6 для Windows XP с пакетом обновления 2 (SP2) тип MIME" text / plain "не является неоднозначным и никогда не отображается в виде HTML в зоне ограниченного доступа, даже если содержимое предполагает, что это правильный формат. "

2 голосов
/ 15 апреля 2010

Я помню, как правильно возвращал текст с некоторыми Content-disposition: attachment, но я не уверен, подходит ли он вашему случаю.

Но это, безусловно, будет полезно:

Вам не нужна Windows (r) для установки ie6. Попробуйте ies4linux

0 голосов
/ 02 апреля 2013

Я нашел http://www.browserstack.com/ ОЧЕНЬ полезным. Вы можете использовать любую версию любого браузера на одном из своих серверов через flash-приложение.

это платный сервис, но вы можете бесплатно протестировать его в течение трех месяцев (при поддержке Microsoft, поскольку они знают, что вы разрабатываете подобные инструменты для Internet Explorer), используя ссылку, найденную на modern.ie

...