Форум → Программирование → PHP для идиотов → Отдача файлов. mod_rewrite и доступ по секретной ссылке
Отдача файлов. mod_rewrite и доступ по секретной ссылке
Страницы: ← Предыдущая страница →
-
14 апреля 2012 г. 19:02, спустя 1 час 1 минуту 6 секунд
artoodetoo, открой уже для себя exec() и симлинки в NTFSне всё полезно, что в swap полезло -
14 апреля 2012 г. 19:10, спустя 8 минут 18 секунд
открой уже для себя exec()
на шаредах часто запрещеноСапожник без сапог -
14 апреля 2012 г. 19:18, спустя 8 минут 1 секунду
phpdude, а такое? http://php.net/manual/ru/function.symlink.phpне всё полезно, что в swap полезло -
14 апреля 2012 г. 19:23, спустя 4 минуты 24 секунды
phpdude, а такое? http://php.net/manual/ru/function.symlink.php
при задачи ТС и условии5.3.0 Эта функция теперь доступна на Windows платформах (Vista, Server 2008 и выше).
походу подходит :-)Сапожник без сапог -
14 апреля 2012 г. 19:35, спустя 11 минут 57 секунд
типичный шаред апаче-хостинг на винде - это серьёзноне всё полезно, что в swap полезло -
14 апреля 2012 г. 19:46, спустя 11 минут 13 секунд
это да))))))))
типичный шаред апаче-хостинг на винде - это серьёзноСапожник без сапог -
14 апреля 2012 г. 20:37, спустя 51 минуту 11 секунд
master, спасибо большое. ты реально расширил мои горизонты. я не буду тебя учить читать и думать.
а теперь или по теме или бан на неделю.ιιlllιlllι унц-унц -
-
-
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 полезло -
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ι унц-унц -
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ι унц-унц
Страницы: ← Предыдущая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!