ФорумПрограммированиеPHP для идиотов → Отдача файлов. mod_rewrite и доступ по секретной ссылке

Отдача файлов. mod_rewrite и доступ по секретной ссылке

  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 14 апреля 2012 г. 19:02, спустя 1 час 1 минуту 6 секунд

    artoodetoo, открой уже для себя exec() и симлинки в NTFS
    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 14 апреля 2012 г. 19:10, спустя 8 минут 18 секунд

    открой уже для себя exec()

    на шаредах часто запрещено
    Сапожник без сапог
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 14 апреля 2012 г. 19:18, спустя 8 минут 1 секунду

    phpdude, а такое? http://php.net/manual/ru/function.symlink.php
    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 14 апреля 2012 г. 19:23, спустя 4 минуты 24 секунды


    phpdude, а такое? http://php.net/manual/ru/function.symlink.php


    при задачи ТС и условии
    5.3.0 Эта функция теперь доступна на Windows платформах (Vista, Server 2008 и выше).


    походу подходит :-)
    Сапожник без сапог
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 14 апреля 2012 г. 19:35, спустя 11 минут 57 секунд

    типичный шаред апаче-хостинг на винде - это серьёзно
    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 14 апреля 2012 г. 19:46, спустя 11 минут 13 секунд


    типичный шаред апаче-хостинг на винде - это серьёзно
    это да))))))))
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 14 апреля 2012 г. 20:37, спустя 51 минуту 11 секунд

    master, спасибо большое. ты реально расширил мои горизонты. я не буду тебя учить читать и думать.

    а теперь или по теме или бан на неделю.

    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 14 апреля 2012 г. 20:42, спустя 4 минуты 51 секунду

    весна, гормоны
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 14 апреля 2012 г. 20:47, спустя 4 минуты 34 секунды

    перехвалили пацана ящитаю.
    ιιlllιlllι унц-унц
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 14 апреля 2012 г. 21:15, спустя 28 минут 53 секунды

    artoodetoo, я ж говорю, очень просто не отвечать не актуальные вопросы типа "почему в твоей говноподелке нет фильтра по IP?" или "в чём принципиальное отличие этой схемы от простого переименования папки с файлом?". ты не видишь излишества в коде (2.fileId и 3.accessId это по сути одно поле, 4.name и 5.ext - тоже, более того, файлы с точкой в имени скачиваться не будут, например вместо vasya.pupkin.zip апач будет искать файл vasya.pupkin и конечно не найдёт). ты не видишь дыры (имея актуальную комбинацию 2.fileId + 3.accessId можно выкачать все файлы из upload/). когда же с тобой говорят по теме (5 моих комментариев выше - по теме) ты врубаешь броню, хамишь мне, а теперь ещё и баном угрожаешь. поскольку у тебя администраторский красный аккаунт то мне интересно - то что ты говоришь - мнение администрации или твоё личное?
    не всё полезно, что в swap полезло
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 14 апреля 2012 г. 22:01, спустя 45 минут 15 секунд

    Зря ты мне не поверил. Мужик сказал - мужик сделал. ридонли на неделю. жаль, что ты с самого начала не врубился, а слушал только себя: "симлинк, симлинк, юзай симлинк, чем плох симлинк". а надо было прочитать или пройти мимо.

    Отвечаю подробно, хотя все уже достаточно было описано:
    - IP. для этой схемы знать IP не требуется. кто владеет секретной ссылкой, тот имеет доступ. если нужен какой-то доп. фильтр по IP — это отдельная задача

    - в чем отличие от переименования и якобы accessId не нужен: вот в этом и отличие - ключ доступа. адрес с ключом — это "секретная ссылка", по каждому обращению к download.php?id=1234 от авторизованного пользователя будет рождаться новый accessId и новая рабочая ссылка.

    - про точку: во первых надо понимать, что "реальное" (исходное) имя файла и имя файла в папке хранения не совпадают. в папке upload нет и не будет файлов с точками в имени. как переписать RewriteCond чтобы он допускал несколько точек в "реальном" имени можешь предложить, когда бан закончится )))

    - "имея актуальную комбинацию 2.fileId + 3.accessId…" родной! откуда она вдруг заимеется-то? google и yahoo используют ссылки с ключом авторизации и все у них нормально.

    мое мнение такое — никогда не комментируй в запале. в 99.9% случаев оказывается, что написал чушь и потерял лицо.
    береги себя, буду рад конструктивным предложениям. для того я эту тему и создал. про точку вот хорошее замечание.
    ιιlllιlllι унц-унц
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 16 апреля 2012 г. 23:48, спустя 2 дня 1 час 46 минут

    Новая версия. Точки в имени теперь можно, а можно файл без расширения, why not? )))

    .htaccess в корне теперь такой:

    RewriteEngine on

    # Allow access via secret link with access key
    #                         1.prefix         2.fileId  3.accessId  4.name   5.ext
    RewriteCond %{REQUEST_URI} (.*)/download/([0-9a-f]+)-([0-9a-f]+)/(.*?)(\.[0-9a-z]*)?$
    RewriteCond %{DOCUMENT_ROOT}%1/upload/%2-%3.acs -f
    RewriteRule download/.* upload/%2%5 [L]


    /upload/.htaccess

    Options -Indexes -ExecCGI

    php_flag engine 0

    <Files ~ ".(php*|phtml|pl|py|jsp|asp|htm*|shtml|sh|cgi)">
    ForceType text/plain
    </Files>

    RewriteEngine on
    # Restrict direct access to uploaded files
    RewriteCond %{THE_REQUEST} !^(GET|HEAD)\ ([^?]*)/download/
    RewriteRule .* - [F,L]


    До сих пор я никогда не оставлял у файлов в /upload/ реальное расширение. Но сейчас есть одно соображение, к этой задаче прямо не относящееся.
    ιιlllιlllι унц-унц

Пожалуйста, авторизуйтесь, чтобы написать комментарий!