Назад | Перейти на главную страницу

Хранение ценных изображений с высоким разрешением до root

У меня есть загруженный веб-сайт с фотографиями знаменитостей, и я пытаюсь скрыть фотографии за корнем веб-сайта, чтобы к ним нельзя было получить доступ через URL-адрес, но мой сценарий ASP может прочитать фотографию и отправить ее в браузер в двоичном формате. Я использую Windows Server 2008 R2.

Я хотел бы знать, какие настройки безопасности должны быть в папке, содержащей фотографии. Мой сайт находится на c:\inetpub\vhosts\mydomain\httpdocs\website.asp и фотографии должны храниться на диске D здесь: d:\web-library-photos\thumbs\group233\24wedfsdf232eraa.jpg.

Мне удалось заставить это работать, просто нажав «Поделиться» в свойствах d:\web-library-photos а затем предоставил «Всем» права на чтение / запись, но я чувствую, что делаю что-то не так.

Что мне делать, чтобы сделать эту папку безопасной, но доступной для учетной записи администратора сервера и скриптов моего веб-сайта? Какие свойства общего доступа я должен применять? Должен ли я делиться?

Ваше приложение ASP работает локально на сервере и может обращаться к файлам изображений через локальную букву диска и путь «D: ...». Функция «Совместное использование», которую вы рассматриваете, позволяет клиентским компьютерам получать доступ к папке через протокол обмена файлами CIFS / SMB. В описываемом приложении нет необходимости использовать «Совместное использование».

Ваше приложение ASP работает в контексте безопасности, установленном IIS. По умолчанию анонимные пользователи запускают приложения ASP от имени учетной записи IUSR_machine-name (учетной записи, которая создается во время установки IIS).

Необходимо, чтобы список управления доступом NTFS (ACL) для папки / файлов, к которым обращается ваше приложение ASP, позволял приложению ASP получать доступ к файлам. Какие разрешения должны быть установлены в ACL, определяется контекстом безопасности, в котором работает приложение ASP. Если приложение работает от имени анонимного пользователя (т.е. удаленные пользователи не выполняют проверку подлинности Windows), тогда учетной записи пользователя IUSR_machine-name потребуется разрешение, предоставленное для папки. Стандартные разрешения NTFS обычно позволяют «Пользователи / Чтение», и этого будет достаточно для доступа.

Редактировать:

На вашем снимке экрана показан ACL - то есть разрешения, предоставленные определенным пользователям и группам, - примененные к данной папке. Это не исчерпывающий список всех учетных записей пользователей, о которых серверный компьютер «знает». Этот исчерпывающий список будет доступен в инструменте «Локальные пользователи и группы» в инструменте «Управление компьютером».

Каждое действие, выполняемое на машине Windows Server, выполняется в «контексте безопасности». Каждое действие, которое приложение требует от операционной системы выполнить от имени пользователя, должно быть отнесено к данному пользователю или к самой операционной системе компьютера (которая для всех намерений и целей также представляется пользователем с именем «СИСТЕМА» или «LocalSystem» и серийный номер специального идентификатора безопасности, который идентифицирует его как этого конкретного специального пользователя).

Когда пользователь обращается к вашему сценарию ASP для просмотра изображения, IIS выполняет ваш сценарий и, в свою очередь, ваш сценарий запрашивает у операционной системы чтение файлов. Если пользователь не прошел аутентификацию в IIS через один из встроенных механизмов аутентификации в IIS, то доступ пользователя к операционной системе считается анонимным и осуществляется с использованием учетной записи пользователя IUSR_machine-name. (В ваше приложение ASP может быть встроен компонент аутентификации, однако это не повлияет на представление Windows о том, «кто» удаленный пользователь - на это может повлиять только классическое приложение ASP с помощью встроенных возможностей аутентификации. IIS.)

Было бы далеко за пределами вашего вопроса дать вам пошаговое объяснение того, как подсистема безопасности Windows оценивает ACL для файла или папки, чтобы определить, предоставлен ли пользователю доступ или нет. Вы упомянули, что вам это не знакомо, поэтому я бы рекомендовал найти ссылку, объясняющую, как работают разрешения NTFS. Вы можете поэкспериментировать на ПК с Windows с разрешениями NTFS и создать локальные учетные записи пользователей, чтобы понять, как это работает.