Какие есть варианты для безопасного хранения изображений, кроме хранения в базе данных? - PullRequest
3 голосов
/ 11 ноября 2009

Обычно файловые серверы используются для хранения изображений для веб-приложения. Для большей безопасности и контроля вы бы хотели хранить изображения в базе данных. Но это оказывается сложным и медленным.

Существуют ли другие основные опции, кроме db / file server, для безопасного хранения изображений с разрешениями пользователя и т. Д.

Редактировать: я развернут в облаке Amazon и использую postgresql в качестве базы данных.

Ответы [ 3 ]

3 голосов
/ 11 ноября 2009

SQL Server 2008 предлагает хранилище файлового потока , которое позволяет вам хранить данные в файловой системе, одновременно обращаясь к ней через базу данных. Это может быть полезно, если ваша единственная забота об использовании базы данных - это производительность.

2 голосов
/ 11 ноября 2009

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

<img src="getimage.aspx?id=1234">

и пусть ваша "страница" GetImage выполнит любой подходящий тест разрешений (например, с использованием идентификатора сеанса), а затем "доставит" изображение из защищенной папки.

Недостатком является то, что изображение не кэшируется, я думаю? но я ожидаю, что это верно и для маршрута к базе данных.

Хранение изображений в базе данных phyiscal увеличивает объем базы данных, увеличивая время резервного копирования и восстановления; но он предоставляет один контейнер, который отлично подходит, если вы хотите переместить все на новый / несколько серверов, или если важно обеспечить ссылочную целостность между Image и другими данными в БД

0 голосов
/ 11 ноября 2009

Вас беспокоит, что люди угадывают URL и получают прямой доступ к изображению?

Если это так, вы все равно можете поместить изображения в файловую систему, прямо за пределами каталога www. Вы создаете страницу с именем ImageServer.php / .aspx / .jsp, извлекаете изображение из файловой системы и затем отправляете его в ответ на URL-адрес, например:

ImageServer.php?image=BlueWhale.png

Если вы сделаете это, будьте осторожны, чтобы правильно установить тип MIME и заголовки срока действия, потому что Apache / IIS не сделает это за вас.

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