2016-06-09 5 views
0

Я разрабатываю локальное приложение, которое отображает чувствительные изображения с безопасного локального сервера, и мне нужно, чтобы эти изображения были доступны только для просмотра в моем веб-приложении - поэтому я не хочу, чтобы они хранились на диске (через кеш или что-то в этом роде).Остановить загрузку кеширования изображений на диск

Вот мои заголовки ответа (nodejs курьерский):

res.header("Cache-Control", "no-cache, no-store, must-revalidate"); 
res.header("Pragma", "no-cache"); 
res.header("Expires", "0"); 
res.send(image); 

Вот мой AngularJS код, чтобы получить изображение и сделать его. Я использую AJAX, потому что я аутентифицирую пользователя через JWT, поэтому мне нужно включить заголовок auth.

$http.get(src, { 
    responseType: 'arraybuffer' 
}) 
.then(function(res){ 
    var headers = res.headers(); 
    var blob = new Blob([res.data], { 
     type: headers['content-type'] 
    }); 

    image.src = $window.URL.createObjectURL(blob); 
}); 

Кажется, что это работает, но я смущен тем, что показывают инструменты разработчика Chrome и Firefox. Я должен быть на 100% уверен, что эти изображения не будут сохранены на диске.

Но я вижу:

Status Code: 200 OK (from cache) 

Chrome Dev Tools Image

Я не могу увидеть изображение в хроме: // вкладку кэша, но меня беспокоит, что я вижу (из кэша) в сетевой монитор.

В моем браузере Firefox я вижу URL-адрес изображения, но в столбце устройства указано «память». Может ли любой, кто смотрит на память, просматривать его через определенный промежуток времени, особенно после выхода пользователя из системы?

Firefox cache viewer

Так что я думаю, мой вопрос заключается в то, что эти два браузер делает, когда я создаю блоб? И может ли кто-нибудь получить доступ к этим изображениям за пределами браузера? Что он делает на мобильном/планшетном устройстве?

Если бы я должен был передать изображение с использованием строки base64, было бы безопаснее или хуже с точки зрения конфиденциальности и безопасности?

+1

Помимо кэширования ... вы знаете, что пользователи могут просто сохранить изображение на диск, если они действительно этого хотят? – deceze

+1

Пользователь может сделать снимок экрана с документа. – guest271314

+0

_ «Если бы я должен был передать изображение с использованием строки base64, это было бы безопаснее или хуже с точки зрения конфиденциальности и безопасности?» _ - это было бы то же самое. – CBroe

ответ

0

Yoy может преобразовывать jpg blob в данные изображения холста, на jpg.js, а затем загружать его на холст и не использовать изображения, в этом случае нет никаких изображений и ресурсов для загрузки по HTTP.

Смежные вопросы