Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]blokada dostepu do pliku
Forum PHP.pl > Forum > Przedszkole
Leeddo
witam
mam na stronie gre we flashu, zrobilem szyfrowanie swf'a itd. ale mimo wszystko chcial bym powstrzymac wscibskich od pobierania/ogladania surowego pliku swf.

generalnie chcial bym zeby swf byl dostepny tylko jesli skrypt o niego poprosi... cos na zasadzie include swf a w htaccess dany from all .
czy jest to w ogole wykonalne ? jesli tak to prosze o jakies sugestie smile.gif

pozdrawiam
l0ud
Najprostsza metoda: umieść plik w dowolnym miejscu, zabroń jego odczytu z zewnątrz (deny from all jak pisałeś), następnie wczytuj go za pośrednictwem skryptu php i zamiast bezpośredniego adresu do pliku daj adres do tego skryptu.

Sam skrypt bardzo prosty smile.gif sprawdzanie czy są uprawnienia na odczyt (np. na podstawie sesji), readfile('sciezka do pliku plik.swf') i ew. header.
Leeddo
dzieki, dziala prawie idealnie... rzeczywiscie nie mozna sie dostac bezposrednio do pliku a jedynie przez skrypt php.
problem mam z formatowaniem tego swfa...

tak go wczytuje
  1. <? 
  2. header('Content-type: application/x-shockwave-flash');
  3. readfile('php/gra.swf');
  4. ?>


ale zeby swf nie mial np menu po kliknieciu prawym klawiszem myszki musi byc osadzony jakos tak:

  1. <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
  2. codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0"
  3. width="550" height="530" id="gra" align="middle">
  4. <param name="allowScriptAccess" value="sameDomain" />
  5. <param name="allowFullScreen" value="false" />
  6. <param name="movie" value="php/gra.swf'"/>
  7. <param name="menu" value="false" />
  8. <param name="quality" value="high" />
  9. <param name="bgcolor" value="#ffffff" />
  10. <embed src="php/gra.swf"
  11. menu="false"
  12. quality="high"
  13. bgcolor="#ffffff"
  14. width="550"
  15. height="530"
  16. name="gra"
  17. align="middle"
  18. allowScriptAccess="sameDomain"
  19. allowFullScreen="false"
  20. type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />


probowalem wsadzic w miejsce gdzie jest odwolanie do swf'a ten sam kod php ktory wczytuje swfa... niestety wyswietlaja sie jakies krzaki ktore ciagna sie przez kilka "ekranow"

Kod
     H0y�_D���r�А��
sniezny_wilk
Widzę, że koledzy nie bardzo wiedzą jak swf'y działają.. zapomnieliście o jednej ważnej sprawie. W momencie ładowania swf,a jest on wczytywany do na dysk twardy, do tymczasowych plików internetowych . Więc w momencie wejścia na Twoją stronę wszyscy mają tego swf'a na dysku. IE nawet nazwy nie zmienia. Reasumując Twoje blokady robisz na darmo.

EDIT: mało tego jest całą masa dekompilerów i nie ma na rynku takiego programu który zabezpieczy Tobie w pełni swf'a.
Leeddo
udalo mi sie wczytac poprawnie swfa

  1. <param name="movie" value="<?PHP echo "test.php";?>" />
  2. <embed src="<?PHP echo "test.php";?>"


test.php
  1. <? 
  2. header('Content-type: application/x-shockwave-flash');
  3. readfile('php/gra.swf');
  4. ?>


co do dekompilowania to bym polemizowal
Kod
// Action script...

// [onClipEvent of sprite 51 in frame 6]
onClipEvent (enterFrame)
{
     function ()
     {
         \x03 = 202 % 511 * 5;
         return (eval("\x03"));
     } // End of the function
     var \x01 = -827 + \x04\x05();
     while (\x01 = eval("\x01") + 211, eval("\x01") == 61)
     {
         \x01 = eval("\x01") + 163;
         break;
     } // end while
     if (eval("\x01") == 188)
     {
         \x01 = eval("\x01") + 355;
        
     } // end if
     \x01 = eval("\x01") + 510;
     var null = true;
     if (eval("\x01") == 224)
     {
         \x01 = eval("\x01") + 311;

tak wyglada moj zaszyfrowany swf w dekompilatorze wiec raczej kiepsko widze wartosciowe dekompilowanie czegos takiego na dzien dzisiejszy winksmiley.jpg
sniezny_wilk
Zależy czego używasz. Jak nie programem to można ręcznie zdekompilować, a prawie zawsze kod działa, więc ktoś może pożyczyć sobie funkcje, jeśli wie co robią i nie musi ich zmieniać.
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.