Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Testowanie klucza przed uruchomieniem pliku typu .swf / .mov
Forum PHP.pl > Forum > PHP
armon
Witam,

Mam w planie napisanie sklepu ze sprzedażą filmów video.

Wydaje się być to całkiem proste zadanie, ale gorzej z zabezpieczeniem końcowym...

Otóż można zrobić to tak że, jeżeli ktoś jest już zalogowany i ma aktualną sesję oraz ma zaznaczoną flagę, że kupił dany materiał to ma dostępne linki do filmów.

Po wejściu na dany link, sprawdzona zostanie sesja, flaga, więc tutaj jest całkiem bezpiecznie. Teraz, gdy ktoś poda ten link komuś innemu, to bez podania dodatkowo swojego loginu oraz hasła nie może mieć dostępu do filmu.

Gorzej jednak, jeżeli jest to osoba, która zna HTML, osoba ta wtedy może wejść w źródło strony oraz znaleźć bezpośredniego linka do filmu, który musi tam być, jeśli chcę rozprowadzać filmy z możliwością streamingu.

No to wpadłem na taki pomysł...

Generuje na samym początku strony przy pomocy PHP, identyfikator, który zostanie wysłany do bazy danych. Gdy osoba wyjdzie ze strony, kod ten zostanie usunięty. Kod będzie używany np tak.
Kod
... nazwafilmu.mov?k=125agsdg4179&g=f8c9d837asdfasdf122793e0222ce3fa91c2       ...


Fajna sprawa, ale jak sprawdzić ten kod gdy wejdzie się na http://costamcostam/nazwafilmu.mov

Przecież nazwafilmu.mov wywoła od razu Quick Time, a jeżeli będzie to plik .swf to wywoła flash playera...

Jest to jednak możliwe bo zauważyłem, że podobnie robią np. tutaj: http://www.lynda.com/home/Player.aspx?lpk4=53917, wchodząc w źródło strony można znaleźć http://files.lynda.com/secure/courses/740/...3e0222ce3fa91c2 , a jak widzimy na końcu jest klucz, bez klucza czyli http://files.lynda.com/secure/courses/740/..._LA_welcome.mov film się nie odpali.

Widzimy, że ich kod jest stały, natomiast ja mam zamiar zrobić dynamiczny.

Jednak moje pytanie główne brzmi:
Jak sprawdzić przy pomocy jakiegokolwiek języka(wydaje mi się, że jest to PHP) zanim odpali się nazwafilmu.mov jaki ona ma kod i czy go w ogóle on istnieje?

Pozdrawiam serdecznie,

Armon
erix
mod_rewrite
armon
Już to znalazłem wcześniej - jakieś 3h szukałem O.o, ale dzięki...

ustawiłem .htaccess
  1. Options FollowSymLinks
  2. RewriteEngine On
  3. RewriteRule ^quicktimefile.mov$ controller.php


i wszystko byłoby pięknie, ale jak teraz w controller.php mam uruchomić quicktimefile.mov, oraz aby zachować wersje "embedded" na stronie w pliku .html.

Jakiś pomysł, wystarczy mi hasełko, resztę doczytam winksmiley.jpg
erix
Nie uruchamiasz, tylko wrzucasz odpowiednie MIME i zwracasz zawartość pliku. Ew. tworzysz losową nazwę i przekierowujesz (tak by było najlepiej).

W źródle HTML masz quicktimefile.mov, a odczytuje to, na co przekierujesz. Osoby trochę bardziej obcykane odczytają, ale chakierzy już nie. ;]
armon
"Nie uruchamiasz, tylko wrzucasz odpowiednie MIME i zwracasz zawartość pliku."

Błagam jakiś link o zwracaniu odpowiedniego MIME i zwracaniu wtedy zawartości pliku. Wiem co to, ale nie wiem jak go zwrócić w mojej sytuacji sad.gif

Bo ja to cholerstwo muszę zwrócić w tym samym miejscu gdzie jest wywoływane czyli:
  1. <object id="QuickTimePlayer" classid="CLSID:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
  2. width="640" height="496"
  3. codebase="http://www.apple.com/qtactivex/qtplugin.cab">
  4. <param name="src" value="quicktimefile_media/quicktimefile.mov?kod= asdfasdf215125"/>
  5. <param name="autoplay" value="true" />
  6. <param name="loop" value="false" />
  7. <param name="controller" value="true" />
  8. <embed id ="EmbedQuickTimePlayer"
  9. pluginspage ="http://www.apple.com/quicktime/download/"
  10. src ="quicktimefile_media/quicktimefile.mov?kod=asdfasdf215125"
  11. autoplay ="true"
  12. loop ="false"
  13. controller ="true"
  14. enablejavascript ="true"
  15. width ="640"
  16. height ="496">
  17. </embed>
  18. </object>


w src powyższego kodu O.o
erix
SRC nie zmieniasz, co do MIME: header.
armon
Dzięki, już jest lepiej.

Zrobiłem w pliku controller.php dla testu tak:
  1. <?php if (isset($_GET['kod']))
  2. if (addslashes($_GET['kod']) == 'asdfasdf215125')
  3. {
  4. header('Content-type: video/quicktime');
  5. readfile('quicktimefile.mov');
  6.  
  7. }
  8. else
  9. echo 'zly kodzik :]';
  10. ?>


i wszystko działa!!!!!

BARDZO DZIĘKUJE CI za pomoc :-)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.