Запрет доступа к файлам, если пользователь вводит полный адрес в адресной строке

У меня есть веб-сайт, некоторые папки на веб-сайтах содержат изображения и файлы, такие как.pdf,.doc и.docx. пользователь может просто ввести адрес в URL, чтобы получить файл или показать фотографию

http://site/folder1/img/pic1.jpg

тогда бум.. он может увидеть изображение или просто скачать файл

Мой вопрос: как предотвратить подобные действия, как я могу гарантировать безопасный доступ к файлам.

какие-либо предложения

ОБНОВЛЕНИЕ, ЧТОБЫ РАЗЪЯСНИТЬ МОЮ ИДЕЮ

я не хочу, чтобы какой-либо пользователь, просматривающий веб-сайт, обычно получал доступ к этим файлам, просто записывая URL-адрес файла. эти файлы являются файлами CV, они загружаются пользователями в определенную папку на сервере, который мы размещаем за пределами компании. эти файлы просматриваются персоналом только через специальную систему. это сценарий, который мы хотим. Я не хочу, чтобы WEB GEEK просто хотел посмотреть, какие файлы были загружены в эту папку, чтобы легко загружать их на свой компьютер и просматривать или публиковать в Интернете. я надеюсь, вы поняли мою идею

3 ответа

Решение

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

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

Поскольку веб-сервер не имеет прямого доступа к файлам, что не позволяет им обслуживать их, вам придется написать сценарий на стороне сервера на выбранном вами языке (PHP/ASP/JSP и т. Д., Поскольку вы не указали ни одного) который после проверки авторизации извлекает файл и передает его содержимое пользователю.

Для повышения безопасности ваших файлов вы можете поместить их в каталог за пределами корневого каталога, а затем передать их на веб-страницы с помощью сценария. Кроме того, сценарий, который их передает, должен находиться на странице с контролируемым доступом. Вы можете использовать.htaccess, но я предпочитаю более гибкую систему входа в систему.

Вы можете проверить заголовок HTTP Referrer, чтобы убедиться, что ссылка пришла с вашего сайта. Обратите внимание, что реферер может быть фальшивым, но если вы просто ищете простой способ поймать большинство людей, это работает.

Другие вопросы по тегам