Ограничение доступа к файлам через http

Discussion in 'PHP' started by Егорыч+++, 3 May 2006.

  1. null_access

    null_access Elder - Старейшина

    Joined:
    31 Jan 2005
    Messages:
    128
    Likes Received:
    6
    Reputations:
    0
    а как такую темку через htaccess сделать?
     
  2. Ch3ck

    Ch3ck Elder - Старейшина

    Joined:
    9 Jun 2006
    Messages:
    1,362
    Likes Received:
    1,157
    Reputations:
    430
    Когда то на форуме была статья с полным описанием... щас нету... но в своё время я ее сохранил... Почитай вот => ЗДЕСЬ <= :cool:
     
  3. max_pain89

    max_pain89 Eat `em UP!

    Joined:
    11 Dec 2004
    Messages:
    451
    Likes Received:
    140
    Reputations:
    146
    да, /thread16076-htaccess.html , поиск sucks
     
  4. DIAgen

    DIAgen Banned Life!

    Joined:
    2 May 2006
    Messages:
    1,055
    Likes Received:
    374
    Reputations:
    460
    Решить можно проще! Фалы лежат не в web директории, пути к файлам в базе, так можно ограничить доступ пользователей, будет просто генирироваться адрес, ну например учитывающий кукки, потом уже скрипт проверяет этот адрес на соответсвие, и т.д. Может я и не прав но это самый надежный способ!
     
  5. Dronga

    Dronga ВАША реклама ТУТ!!

    Joined:
    1 Jul 2005
    Messages:
    575
    Likes Received:
    239
    Reputations:
    249
    Не знаю решена проблема или нет, но есть идеальное решение.

    Принцип прост. Кладем наш _файл_ в директорию, не важно какую, но пусть в самом тяжелом случае это будет веб дира. Далее пишем скрипт, который будет читать из этого файла и выводить в поток. Далее озаботимся тем чтобы файл нельзя было скачать напрямую:
    1. Кладем в веб диру .htaccess который делает невозможным прямое обращение к файлу, есть несколько способов, меняются под конкретные задачи. Пропускаем второй пункт, читаем следующий абзац. Интерактив прям )
    2. Если вообще нет возможности использования .htaccess читаем дальше. Папку с нашим секретным понтовым файлом обзываем например так tinevidiwetupapo4kutinetelepat. Сам скрипт кладем на уровень выше и в скрипте, непосредственно в коде, указываем путь что типа "./tinevidiwetupapo4kutinetelepat/".$file." . Отлично.

    Теперь смотрим что мы имеем. Пользователь заходит на страничку, видит линк на скачку вида http://pustbudetantichat.ru/downloads.php?file=bibliya.pdf. Скрипт начинает его считывать и возвращать пользователю, при этом пользователь так и не узнает где-же всё-таки лежит файл. Всё.

    Теперь осталось прикрутить авторизацию для того чтобы все подряд не могли качать, если нужно сделать чтобы кто-то мог, а кто-то нет, то уже разбиваем пользователей на группы.

    Для ещё большего усложнения и сокрытия непоредственно имени файла можно использовать БД и линк на скачку приобретёт вид http://pustbudetantichat.ru/downloads.php?file=31337, но это уже всё вариации, задача решена.

    На самом деле требуемый для этих целей php скрипт давно уже существует и называется NDL (No Direct Links), ищется в инете и поставляется с понятными examples.
     
    #45 Dronga, 3 Aug 2007
    Last edited: 3 Aug 2007
  6. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    727
    Reputations:
    266
    ln -s рулит
     
  7. bxN5

    bxN5 Elder - Старейшина

    Joined:
    8 Jan 2006
    Messages:
    687
    Likes Received:
    138
    Reputations:
    32
    Не проблема переделать данный скрипт для себя Ссылко
     
  8. gibson

    gibson Elder - Старейшина

    Joined:
    24 Feb 2006
    Messages:
    391
    Likes Received:
    247
    Reputations:
    88
    Как вариат можно использовать дополнительный модуль download для vbulletin, немного переделать и все. Файлы храняться с рандомнымыми именами + htaccess
    _http://vbsupport.org/forum/showthread.php?t=7266&highlight=downloads
     
  9. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,803
    Likes Received:
    1,957
    Reputations:
    594
    1. Авторизуются, значит есть запись в базе. Пользователям в базу добавляются логические поля с названием папок (или скажем так: уровень доступа, можно сделать одно поле, но тогда каждому значению соответствует свой набор разрешённых директорий), в поля записывается флаг на скачку разрешено/запрещено (Да/Нет). Далее, перед скачкой, скрипт проверяет значение соответстующего поля конкретного пользователя (с именем названия папки) и в этом случае копирует или не копирует файл во временную папку.
    2. - Для скачиваемых файлов придётся сделать разные папки в зависимости от уровня доступа.
    3. Запрошенный файл копируется во временную директорию, случайный URL (название папки)
    4. Ссылка на скачивание формируется динамически с этим случайным URL , её выдаёт скрипт, затем скрипт автоматически удаляет файл после скачки пользователем (или через некоторое время).
     
    #49 -=lebed=-, 3 Aug 2007
    Last edited: 3 Aug 2007
  10. n1†R0x

    n1†R0x Elder - Старейшина

    Joined:
    20 Jan 2007
    Messages:
    728
    Likes Received:
    376
    Reputations:
    235
    Так уже год прошел со дня последнего поста, мб неактуал, как думаете? :p
    хотя все же почитать интересно было.
     
  11. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,803
    Likes Received:
    1,957
    Reputations:
    594
    ОМГ: Dronga оказывается археолог (а я и не заметил...)