Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zablokowanie możliwości pobierania plików z serwera
Forum PHP.pl > Forum > PHP
Raven1122
Witam,

Mam taki problem, ponieważ robię portal gdzie będzie taka usługa jak "portfel". Smsem można dodać środków do portfela, a poźniej jeżeli mam wystarczającą sumę w portfelu mogę ściągnąć paczkę zip z grafiką. Zastanawiam się jednak jak zabezpieczyć pliki przed pobraniem przez użytkownika znającego link. Czytałem gdzieś, żeby folder z tymi plikami umieścić przed folderem public_html, ale jak wtedy mam się odnosić do tych plików??

Proszę o podanie jakichś sensownych podpowiedzi.

Z góry dziękuje.
Dominator
Może rób to na tokeny, czyli, że link do pliku wygląda tak: twojastrona.pl/download?token=39213j123hjkh12j4jhk21h312, w bazie dany token będzie dla konkretnego pliku. Sprawdzasz sobie czy token jest powiązany z plikiem. Jeśli tak - pobiera, jeśli nie - błąd.

Natomiast jeśli ktoś już pobierze plik to możesz zrobić tak, że dla tokenu w bazie będzie pole "active", czyli jeśli "active" jest 0 to można pobrać, a jeśli 1 to ktoś nie może pobrać.

Chyba o to Ci chodziło, tak ?
Raven1122
Tak o cos takiego, tylko jesczze jak rozpoczac pobieranie pliku poprzez php?

EDIT

no i co jesczze jesli 2 osoby kupia ten sam plik 1 pobierze, a druga juz nie bedzie mogla


EDIT 2

Teraz tak bardziej pomyslalem nad tym i mam pytanie:

Czy proces wygladalby tak o:

Klient klika przycisk "Zakup", w tym momencie w mazie tworzy się rekord z nickiem kupujacego tokenem i sciezka do pliku i informacja czy link jest aktywny.

Gdy klient wejdzie w link z tokenem status aktwywny zmieni sie na nieaktwyny, a rekord usunie tak?

Tylko jesli bym przetrzymywal te paczki z plikami na serwerze to i tak ktos moze sciagnac ich polozenie powiedzmy metoda prob i bledow
Dominator
Zrób tak, że ktoś będzie mógł pobrać to tylko w ciągu 10 minut, potem kicha biggrin.gif
Raven1122
Watpie by bylo to dobra idea bede sprawdzal po tokenie i po loginie, aby sciagnac trzeba byc zalogowanym.

tylko jescze powiedz mi prosze jak pobrac plik przez php?? czy to cos zwiazanego z header oraz fopen??


Zrobilem to tak:

  1. <?php
  2. header('Content-type: application/x-rar-compressed');
  3. header('Content-Disposition: attachment; filename="../paczka.rar"');
  4. readfile('../paczka.rar');
  5.  
  6. ?>


oczywiscie jest to forma testowa... ta poprawna bedzie pobierala z mysql lokalizacje pliku i zmieniala stan active na nieaktwny czyli 0.

Nie wiem dlaczego ale dodaje mi znak _ przed nazwa pliku


Dodatkowo po rozpakowaniu paczki winrar mowi ze plik jest uszkodzony
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.