Xpoint
   [напомнить пароль]

Защита электронного товара и Интернет-магазине

Метки: [без меток]
2009-01-31 00:24:25 [обр] Евгений[досье]
Здравствуйте, при реализации магазина электронных товаров возник вопрос о максимальной защите товара:
все файлы (например, эл. книги) хранятся в папке с уникальным случайным именем (название которой считывается из БД). При оплате товара покупатель переходит на страницу, откуда методом "ручного Download'a" (примерно так, как описано в этой статье: Xpoint FAQ:Ручной Download, или как скриптом открыть пользователю окошко сохранения файла.) скачивается выбранный файл (имя файла передается в post или get)+перед именем, естественно, ставится то уникальное имя папки, в которой хранятся все товары (имя которой, напоминаю, считывается из базы). Пожалуйста, подскажите, дает ли такой вариант 100% защиту от того, что покупатель может узнать ссылку на товар и передать её ещё кому-нибудь.
P.S. Вариант со взломом БД и узнавании папки с уникальным случайно выбранным именем, в которой хранятся товары, не учитывать.
Также, пожалуйста, поделитесь другими вариантами выдачи и защиты эл. товаров (про отсылку на mail писать не надо). Заранее спасибо.
спустя 1 минуту [обр] Евгений[досье]
Извиняюсь, забыл уточнить, что права на папку с товарами поставлю xx3
спустя 34 минуты [обр] MiRacLe(0/77)[досье]

Обычная практика - создаются симлинки (можно в принципе копии оригиналов) с псевдослучайным именем, которое зависит от мета-данных пользователя (ip, логин и т.п.) и пользователю выдаётся ссылка на этот файл. По истечению какого-то срока файлы удаляются.

например исходный файл megabook.txt
в публичной папке вы создаёте файл 127.128.129.130_parampampam_megabook.txt
пользователю даёте ссылку resource.tld/download/parampampam_megabook.txt
через механизм mod_rewrite или ему подобный переписываете url примерно так:
download/(.*)$  %{REMOTE_ADDR}_$1 [L]

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

спустя 16 часов [обр] Евгений[досье]
Да, спасибо, я читал о таком способе, но сам не хочу его использовать, т.к. необходимо, чтобы магазин работал без установленного mod_rewrite, htaccess и не только под apach (насколько я знаю, эти условия необходимы для mod_rewrite).
И ещё проблема: при "ручном Download'e" невозможна докачка.
Может есть еще варианты для защиты оригинальных файлов от скачки без mod_rewrite, без htacces и, желательно, с возможностью докачки?
Спасибо.
спустя 4 часа 2 минуты [обр] Давид Мзареулян(0/1003)[досье]
Простите, а зачем Вам вообще папки в «ручном даунлоаде»? Там вся проверка авторизации производится в том скрипте, который отдаёт файл. Ссылка по определению будет работать только у зарегистрированного и купившего товар юзера. И не нужно Вам имя файла «передавать в post или get»? что за ерунда? Передавайте ID заказа или товара, а сами файлы должны храниться вне веб-дерева.
спустя 2 часа 50 минут [обр] Евгений[досье]
Давид Мзареулян[досье]Одна папка со случайным именем (xx3) мне нужна для хранения цифровых товаров (просто они должны храниться именно на том же сервере, что и сам сайт с магазином).
Как организованы вадача ссылок в существующих интернет магазинах? Ведь для большинства не нужно mod_rewrite? Неужели они используют обычный ручной даунлод? А как быть с незарегестрированными пользователями?
спустя 1 час 53 минуты [обр] Давид Мзареулян(0/1003)[досье]

Что значит «должны храниться на том же сервере»? Да пусть хранятся, только ВНЕ веб-дерева. Ещё раз — в варианте с «ручным даунлоадом» файл отдаётся скриптом, поээтому только скрипт решает, кто файл увидит, а кто нет. У Вас же и так есть система авторизации — вот её и используйте.

Я не знаю, что используют другие магазины, а я бы использовал нормальный веб-сервер — nginx или lighttpd, где для таких вещей есть специально сделанные механизмы — X-Accel-Redirect и X-Sendfile соответственно.

Powered by POEM™ Engine Copyright © 2002-2005