Любой надежный способ остановить Internet Explorer (v7, 8), чтобы остановить кэширование файлов PDF? - PullRequest
2 голосов
/ 28 июня 2010

Приложение, над которым я работаю, генерирует документы PDF и отображает их в окне браузера. Некоторые данные в документах могут считаться конфиденциальными, поэтому мы изучаем, как предотвратить кэширование содержимого документа браузером. Мы используем следующий код Java, который запрещает кэширование в Firefox, но не работает в IE 8:

response.setHeader("Expires", "0");
response.setHeader("Pragma", "private");
response.setHeader("Cache-Control", "max-age=0, no-store");
response.setHeader("Content-disposition", "inline; filename= \"" + filename + "\"");
response.setContentLength(fbytes.length);

Мне интересно, кому-нибудь повезло, манипулируя заголовками, чтобы предотвратить кеширование IE? Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 02 июля 2010

Когда вы говорите «кеширование», вы имеете в виду «Запись документа на диск»?

Нет, нет хорошего способа сделать это, потому что для просмотра документа Adobe PDF Reader использует файл кэша.

Обычно, указание «no-store» в документе HTTPS вообще запрещает его загрузку в IE, как обсуждено здесь: http://blogs.msdn.com/b/ieinternals/archive/2009/10/03/internet-explorer-cannot-download-over-https-when-no-cache.aspx однако, поскольку этот документ обрабатывается обработчиком Adobe MIME, кажется, что Вы не решаете эту проблему.

Реальный вопрос: «Какая у вас модель угрозы?» Плохой парень, умеющий читать TIF пользователя, обычно способен нанести другой вред (например, установить вредоносное ПО), поэтому попытка сохранить документ на диске - довольно бесполезное занятие. Это особенно верно, потому что современные операционные системы используют виртуальную память (которая записывает страницы памяти на жесткий диск в файле подкачки), что означает, что плохой парень с неограниченной способностью читать жесткий диск может в любом случае восстановить содержимое памяти.

0 голосов
/ 14 апреля 2012

Единственный надежный способ, который я нашел, - ссылаться на pdf с помощью уникального параметра командной строки.Мы используем guids (если в SQL вы можете получить его из: SELECT newid ()).Просто измените запрашивающую страницу, призывающую к PDF, если это ссылка, сделайте следующее: Синтаксис: <a href="{PDFfilename}?guid={UniqueID}">link</a>

Пример: <a href="mypdf.pdf?guid=FA7848FB-414E-4C17-95E8-1921B333E1A0">Link</a>

Для этого потребуется восстановитьзапрашивая страницу каждый раз, когда есть изменение в PDF.

0 голосов
/ 16 февраля 2012

Оставляя безопасность отдельно, так как ссылка существует во внутренней сети. Как это можно сделать для IE6 / IE8.

response.setHeader("Expires", "0");
response.setHeader("Pragma", "private");
response.setHeader("Cache-Control", "max-age=0, no-store");
response.setHeader("Content-disposition", "inline; filename= \"" + filename + "\"");
response.setContentLength(fbytes.length);

Этот кусок кода не работал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...