Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хитрая защита от скачивания файлов, Отдаем файл только тему, кто заплатил 
:(
    Опции темы
SmartBot
Дата 11.1.2009, 01:55 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 11.1.2009

Репутация: нет
Всего: нет



Доброго времени суток.
Задача: Имеется 2 сервера: files.com, на котором нет PHP, только HTML, сервер используется для хранения файлов. И website.com, где PHP есть. Нужно отдавать файлы на закачку только тем, кто оплатил доступ.

Мое решение: После оплаты юзеру выдаются ссылки вида website.com/down.php?file=filename.rar
down.php проверяет юзера, если проверка успешна, ставит куку и редиректит на файл
Код

setcookie("name", "value",time()+3600,"","files.com");
header("Location: http://files.com/filename.rar");


На сервере files.com (PHP нет) файл .htaccess содержит
Код

RewriteEngine on 

SetEnvIfNoCase ^Cookie$ "(.+)" HTTP_MY_COOKIE=$1
SetEnvIfNoCase HTTP_MY_COOKIE "value" local_my=1

<FilesMatch ".(rar|exe)"> 
Order Deny,Allow 
Deny from All 
Allow from env=local_my
</FilesMatch>

Должен выдавать файл, если существет кука. В противном случае ошибка 403.

Проблема: Сервер не отдает файл, ошибка 403. Почему? В setcookie() ведь указан сервер files.com.
Этот метод работает, если файл находится на том же сервере, что и скрипт down.php

Что можно использовать вместо куки?
PM MAIL   Вверх
pizzz
Дата 11.1.2009, 02:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 14.12.2008
Где: Омск

Репутация: 6
Всего: 8



Ну вобще естественно что куки не ходют между сайтами. 

Есть вариант проверять реферер. 
Есть вариант указать ключ в ссылке.

--------------------
Спасибо много, жмем кнопку репутация.  Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады.     
PM MAIL ICQ   Вверх
theworldcreator
Дата 11.1.2009, 07:34 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: 10
Всего: 13



А почему просто не зашарить каталог на files.com(в котором файлы лежат) от всех кроме website.com и твой PHP скрипт, при наличие доступа, будет не редирект делать, а сам скачивать файл с сервера files.com и отдавать пользователю. Отдавать сам - это когда ты ставишь header с содержанием типа "я файл(а не php скрипт)" и содержимое файла отдаешь в поток вывода(ну в смысле что то вроде echo file_get_contents($url); Так делать не надо, это я просто показывал что значит отдать содержимое файла пользователю, а использовать file_get_contents() для таких целей - зло, пользуйтесь cURL).
PM MAIL WWW ICQ   Вверх
SmartBot
Дата 11.1.2009, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 11.1.2009

Репутация: нет
Всего: нет



theworldcreator, чтобы не грузить website.com файлы должен отдавать files.com
А если PHP скрипт будет отдавать, то докачка поддерживается? Файлы по ~150Мб

pizzz, каким образом можно обработать ключ в ссылке без PHP с помощью .htaccess и отдать файл?

Это сообщение отредактировал(а) SmartBot - 11.1.2009, 11:01
PM MAIL   Вверх
skyboy
Дата 11.1.2009, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(SmartBot @  11.1.2009,  10:00 Найти цитируемый пост)
докачка поддерживается?

естественно, это зависит от "отдающего" РНР--скрипта. если он будет обрабатывать входящие заголовки типа Range и If-Range.
PM MAIL   Вверх
pizzz
Дата 11.1.2009, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 14.12.2008
Где: Омск

Репутация: 6
Всего: 8



Цитата(SmartBot @ 11.1.2009,  11:00)
theworldcreator,
pizzz, каким образом можно обработать ключ в ссылке без PHP с помощью .htaccess и отдать файл?

htaccess проверяет если ссылка состоит из http://site.ru/name=ИМЯ ФАЙЛА&kod=КОД
В htaccess жестко защит код, и он должен быть обнаружен в ссылке.

Какая задача, такое вот решение
--------------------
Спасибо много, жмем кнопку репутация.  Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады.     
PM MAIL ICQ   Вверх
theworldcreator
Дата 11.1.2009, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: 10
Всего: 13



Цитата

А если PHP скрипт будет отдавать, то докачка поддерживается? Файлы по ~150Мб

Только если реализовать ее самому. Или можно поступить так: ставим nginx, настраиваем его так, чтобы он обращался к скрипту и если скрипт дает добро отдавал файл. Тогда все фишки вроде докачки возьмет на себя nginx. Но таки весь трафик будет проходить через сервак с PHP и nginx-ом.
Сам я так не делал, но видел в нете(сейчас уже не вспомню точное место) толковую статью по подобной настройки этого сервера.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0725 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.