![]() |
|
![]() ![]() ![]() |
|
Axotnik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
Добрый день, уважаемые! У меня в каталоге есть пхп-скрипт и картинка. Пхп-скрипт выводит картинку в браузер.
Вопрос - как можно запретить прямой доступ к картинке с адресной строки браузера, но оставить возможность показывать картинку через пхп-скрипт? Пример: картинка - http://mysite.ru/img/img1.jpg ; пхп-скрипт - http://mysite.ru/img/my.php. Если перейти через http://mysite.ru/img/my.php, то картинка должна отображаться, если на прямую http://mysite.ru/img/img1.jpg то нет. Заранее благодарю. |
|||
|
||||
Wolf1994 |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 3 Всего: 29 |
1. Установить права на папку, не позволяющие обращаться к ней извне, но достаточные для доступа скриптом.
2. Скопировать в папку файл .htaccess с командами:
или:
Это сообщение отредактировал(а) Wolf1994 - 31.3.2011, 14:41 |
||||
|
|||||
Axotnik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
А какие именно права нужны для папки?
А когда создаю файл .htaccess, доступ к картинке запрещен, но она также не отображается и через скрипт.
Это сообщение отредактировал(а) Axotnik - 31.3.2011, 16:01 |
|||
|
||||
Wolf1994 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 3 Всего: 29 |
Точно не знаю, но, кажется, права на публичный доступ к файлу и на чтение его процессом Apache, запущенным с определёнными привилегиями, отличаются. Можно найти это отличие опытным путём.
Верно: приведённый пример блокирует любой доступ к файлам по HTTP. Если нужно сделать так, чтобы при обращении к графическому файлу он передавался на обработку скрипту, то можно использовать такой .htaccess:
...Либо можно обращаться непосредственно к PHP скрипту, используя полную блокировку файлов с расширением "JPEG". В таком случае вышеприведённые примеры запрещения доступа по HTTP не повлияют на чтение файла скриптом. Это сообщение отредактировал(а) Wolf1994 - 31.3.2011, 16:29 |
|||
|
||||
Nigel |
|
|||
познаю мир ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 20.11.2007 Репутация: 7 Всего: 19 |
Либо используйте механизм x-sendfile, тогда физическое расположение файлов может быть любым, либо делайте запрет как показали выше, читая саму картинку при этом php скриптом.
|
|||
|
||||
Axotnik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
а можно пример, а то что б не пробовал - все равно не отображается.
|
|||
|
||||
Wolf1994 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 3 Всего: 29 |
Скрипт не отображает картинку при запросе "http://mysite.ru/img/my.php", после добавления ".htaccess", но до этого этот же скрипт нормально её выводил?
|
|||
|
||||
Axotnik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
да. до этого норм.
|
|||
|
||||
Wolf1994 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 3 Всего: 29 |
||||
|
||||
Axotnik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
да
|
|||
|
||||
Wolf1994 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 3 Всего: 29 |
Понятно.
В таком случае, вопрос может быть решён с помощью проверки источника обращения к файлу:
100% защиты это не даст, но задачу решит. |
|||
|
||||
Axotnik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
задачу не решает. При обращении http://mysite.ru/img/img1.jpg к картинке картинка отображается.
Через скрипт тоже отображается. |
|||
|
||||
Wolf1994 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 3 Всего: 29 |
Данные инструкции были помещены в пустой файл ".htaccess" в папке "img":
После чего через адресную строку браузера был запрошен файл "img/img1.jpg" и файл "img/my.php" и в обоих случаях картинка загрузилась? |
|||
|
||||
Axotnik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
да
|
|||
|
||||
Wolf1994 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 3 Всего: 29 |
Ясно.
Приведённый последним пример должен был заблокировать картинку при обращении не из скрипта "my.php". Видимо, где-то в данном коде допущена ошибка. Можете попробовать использовать этот подход: проверку на HTTP_REFERER для "JPEG" файлов и составить более корректный ".htaccess". |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |