Преамбула
То есть 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 не Миму понюхать? Или я на самом деле стреляю себе в ногу, думая преследовать этот путь?