у меня есть защищенная паролем папка /public_html/images, чтобы никто не мог видеть все изображения. Но теперь, когда я открываю php-страницу, на которой мне нужно отобразить определенный iamge, я получаю экран входа в систему. Как получить доступ к защищенной паролем папке с php
доступ к защищенному паролем каталогу
Ответы (2)
Попробуйте создать две папки для изображений. Один для общедоступных изображений (к которым у вас будет href в вашем php-скрипте), другой для частных изображений, для которых вы хотите получить доступ только к себе.
В качестве альтернативы, если вы хотите, чтобы все они находились в одной защищенной паролем папке, вам необходимо иметь PHP-скрипт на вашем сервере, который будет принимать аргумент имени файла. Считайте это изображение с диска, а затем отправьте его пользователю с правильными заголовками. Ваш html будет иметь что-то вроде следующего
<img src="image.php?name=foo.jpg">
Что вы хотите предотвратить? Вы хотите запретить кому-либо видеть имена файлов изображений, но разрешить им извлекать любое изображение, как только они узнают имя файла? В этом случае удалите привилегию чтения для этого конкретного каталога:
chmod 711 /path/to/directory
Таким образом, никто, кроме владельца каталога, не может получить список имен файлов из каталога, но доступ к файлам по-прежнему разрешен (1 — это просто привилегия выполнения для каталога, необходимая для «обхода каталога»).
Конечно, вы должны убедиться, что имена файлов изображений действительно трудно угадать, и надеяться, что ваши пользователи не будут распространяться по URL-адресам (что является простым способом обойти контроль доступа на обычных сайтах, таких как Facebook). Выполните приличные проверки контроля доступа в своей программе, если вы действительно хотите получить доступ только к аутентифицированным пользователям, авторизованным пользователям или чему-то подобному.
ssh для входа на сервер, чтобы выполнять такие команды.
- person sarnold; 21.02.2011