Использование Content-disposition в заголовке ответа HTTP


Я нашел следующее asp.net код, который будет очень полезен при обслуживании файлов из базы данных:

Response.AppendHeader("content-disposition", "attachment; filename=" + fileName);

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

что еще можно сделать с заголовком ответа content-disposition?

6 111

6 ответов:

отметим, что RFC 6266 заменяет RFC, указанные ниже. 7 излагаются некоторые из связанных с этим проблем безопасности.

полномочия на заголовок content-disposition-это RFC 1806 и RFC 2183. люди придумали содержание-диспозиция взлома. важно отметить, что заголовок content-disposition не является частью стандарта HTTP 1.1.

стандарт HTTP 1.1 (RFC 2616) также упоминает возможные побочные эффекты безопасности размещения контента:

15.5 Проблемы С Размещением Контента

в RFC 1806 [35], из которого часто содержание-диспозиция
(см. раздел 19.5.1) заголовок в HTTP is производный, имеет ряд очень
серьезные соображения безопасности. Контент-диспозиция не является частью
стандарт HTTP, но так как он есть широкое применение, мы являются
документирование его использования и рисков для реализаторы. См. RFC 2183 [49]
(который обновляет RFC 1806) для деталей.

Ну, похоже, что заголовок Content-Disposition изначально был создан для электронной почты, а не для интернета. ( ссылка на соответствующий RFC.)

Я предполагаю, что веб-браузеры могут реагировать на

Response.AppendHeader("content-disposition", "inline; filename=" + fileName);

при сохранении, но я не уверен.

см. RFC 6266 (использование поля заголовка Content-Disposition в протоколе передачи гипертекста (HTTP))http://tools.ietf.org/html/rfc6266

для asp.net пользователи, платформа .NET framework предоставляет класс для создания заголовка диспозиции содержимого:

этот заголовок определен в RFC 2183, Так что это было бы лучшее место, чтобы начать читать.

разрешенные значения-это значения, зарегистрированные в Интернет-центре присвоения номеров (IANA); их реестра значений следует рассматривать как окончательный источник.

думал, что эта статья KB в разделе поддержки Microsoft связана с обсуждением здесь Как вызвать диалоговое окно загрузки файла для известного типа mime