[php] alleen downloaden door een script toegestaan *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • cemtex
  • Registratie: Januari 2000
  • Laatst online: 19-06 07:54

cemtex

Version 1.1.1

Topicstarter
Ik probeer een soort van dl-manager te maken, maar wil niet lukken zoals ik dat wil.
Ik heb een dir http://domieinnaam.tld/test/ in deze dir staat bv. een bestand test.zip. NU wil ik dus dat dit bestand alleen gedoenload kan worden dmv van een php script wat een content refresh stuurt met daarin de file. Zover gaat dat dus goed. Alleen wil ik dus niet dat mensen dit bestand kunnen dl-en als ze http://domieinnaam.tld/test/test.zip intypen. Nou heb ik zon beetje alle mogelijke chmod optie's geraadpleegt maar niets komt in de richting.

Moet/kan ik dit dus doen met een chmod instelling of moet ik dit dmv een htaccess bestand doen die bv alleen het script toegang geeft op die directory ? Iemand die mij in een richting kan helpen/duwen ?

Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Zet je files buiten de webroot en je bent klaar :)

Acties:
  • 0 Henk 'm!

Verwijderd

Zorgen dat je een download-script maakt waardoor ze nooit achter de URL kunnen komen...

Dus je bestanden een MD5 gecodeerde bestandsnaam gegeven, en dan je download link, ik noem maar iets: download.php?id=12923 , daarbij dan 12923 laten MD5-en en die dan automatisch uit de map laten downloaden, ze krijgen dan alleen in beeld dat ze downloaden vanaf jouw server, niet meer de complete URL.....

Acties:
  • 0 Henk 'm!

  • cemtex
  • Registratie: Januari 2000
  • Laatst online: 19-06 07:54

cemtex

Version 1.1.1

Topicstarter
heb ik ook aangedacht, maar aangezien ik toch al heel lang hiermee bezig was zou ik ook graag willen weten hoe je dit dan wel voor elkaar kan krijgen binnen je root

Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

binnen je webroot is het beschikbaar voor de buitenwereld, dan moet je de directory weer gaan afschermen met een .htaccess file zodat alleen de script er weer bijkan. (wat dus precies hetzelfde doet als het script, maarja dan kan je nog steeds niet een content refresh geven, je zult het script het bestand moeten laten inlezen en deze laten doorsturen naar de webbrowser.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Je kan natuurlijk ook het bestand fysiek laten doorsturen door een PHP script wat eventueel de referer checked. Het maakt dan niet uit waar de file staat.

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • cemtex
  • Registratie: Januari 2000
  • Laatst online: 19-06 07:54

cemtex

Version 1.1.1

Topicstarter
pfoew, dus je kan bv. niet in een htaccess zeggen dat ie alleen maar een request allowed van script.php ? en zoals ik dusty nu begrijp is het (bijna) niet haalbaar om bv. bestanden van 100 + mb door een script te laten inlezen :?

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

cemtex schreef op 16 February 2003 @ 23:01:
pfoew, dus je kan bv. niet in een htaccess zeggen dat ie alleen maar een request allowed van script.php ?
Volgens mij kun je inderdaad geen referer check vanuit je config doen.
en zoals ik dusty nu begrijp is het (bijna) niet haalbaar om bv. bestanden van 100 + mb door een script te laten inlezen :?
Jawel, dat is hardstikke haalbaar; en er zijn redelijk veel eenvoudige scripts voor te vinden.

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 16 February 2003 @ 22:33:
Zorgen dat je een download-script maakt waardoor ze nooit achter de URL kunnen komen...

Dus je bestanden een MD5 gecodeerde bestandsnaam gegeven, en dan je download link, ik noem maar iets: download.php?id=12923 , daarbij dan 12923 laten MD5-en en die dan automatisch uit de map laten downloaden, ze krijgen dan alleen in beeld dat ze downloaden vanaf jouw server, niet meer de complete URL.....
Ik weet niet of je dit een reëele oplossing vind, in dit geval zou ik niet voor een MD5-hash 'gaan', maar voor een andere manier van coderen en decoderen, waarbij de key alleen bij jou bekend is... Iedereen kan nl een MD5 hash bouwen...

Acties:
  • 0 Henk 'm!

Verwijderd

de md5 contructie kan opzich wel, met toevoeging van een extra (uiteraard geheim) deel aan de id
Maar als je toch met een downloadscript aan de gang moet gaat mijn voorkeur uit naar plaatsen buiten de webroot/beschermen

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

* titelfix, om verwarring met de dl () functie te voorkomen ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • nikao
  • Registratie: November 1999
  • Laatst online: 10-02-2022
ksnap het probleem niet helemaal...

je kunt toch een .htaccess in de map gooien met iets als:
code:
1
2
3
4
<Files *.*>
Order allow,deny
Deny from all
</Files>

Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

cemtex schreef op 16 februari 2003 @ 23:01:
pfoew, dus je kan [...]bv. bestanden van 100 + mb door een script te laten inlezen :?

readfile()

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • cemtex
  • Registratie: Januari 2000
  • Laatst online: 19-06 07:54

cemtex

Version 1.1.1

Topicstarter
Nikao dat is dus precies wat ik bedoel , mijn dank is groot :)

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

cemtex schreef op 17 februari 2003 @ 18:23:
Nikao dat is dus precies wat ik bedoel , mijn dank is groot :)
Euhh het lijkt mij heel sterk dat de aangeboden oplossing zal werken aangezien deze .htaccess geen verschil maakt tussen een browser of jouw script :?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 03:13
Spider.007 schreef op 17 February 2003 @ 21:52:
Euhh het lijkt mij heel sterk dat de aangeboden oplossing zal werken aangezien deze .htaccess geen verschil maakt tussen een browser of jouw script :?
Het script draait lokaal en leest bestanden uit het lokale bestandssysteem. Het script heeft dus helemaal niets te maken met .htaccess bestanden. (Hee, er staat een extra bestand in die directory).

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Soultaker schreef op 17 February 2003 @ 22:04:
[...]

Het script draait lokaal en leest bestanden uit het lokale bestandssysteem. Het script heeft dus helemaal niets te maken met .htaccess bestanden. (Hee, er staat een extra bestand in die directory).
Inderdaad; maar dan kun je de bestanden ook gewoon buiten de webroot zetten (was de 1e reply op dit topic). Verder had ik de topicstarter nog niet zien zeggen dat hij idd een script met readfile ging gebruiken..?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • cemtex
  • Registratie: Januari 2000
  • Laatst online: 19-06 07:54

cemtex

Version 1.1.1

Topicstarter
ja daar was ik dus ook achter. Nou als laatste oplossing denk ik dat het dan toch de files achter de webroot te zetten.
mag ik hierbij allen danken voor de reactie.
overigens was ik ook al bezig om alle verwijzigen met md5 t encoden zodat het pad niet te lezen was, en dat werkt erg goed ..

Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 13:09

Kees

Serveradmin / BOFH / DoC
zo'n script heb ik ook eens geschreven, een paar dingen:

1. files _buiten_ de webroot plaatsen
2. ErrorDocument 404 gebruiken die naar je script wijst
3. script _moet_ 200 header afgeven
4. de 'originele url' kan je uit de global vars halen (iig met php)
5. kwestie van file doorgeven, eventueel met resuming (is wel handig)

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • cemtex
  • Registratie: Januari 2000
  • Laatst online: 19-06 07:54

cemtex

Version 1.1.1

Topicstarter
ik snap het helemaal maar hoe krijg je die resuming erin ?

Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 13:09

Kees

Serveradmin / BOFH / DoC
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
            if(isset($headers["Range"])){

              // Resumen.
              header('HTTP/1.1 206 Partial content');
              $val = explode('=',$headers['Range']);
              if(ereg("^-", $val[1])){
                $len = ereg_replace('-', '', $val[1]);
                $from = $filesize - $len;
                header('Content-Length: '.$len);
              }
              else if(ereg("-$",$val[1])){
                $from = ereg_replace("-","",$val[1]);
                header("Content-Length: ".(string)((int)$filesize-(int)$from));
              }
              $br = $from."-".(string)($filesize-1)."/".$filesize;
              header("Content-Type: application/octet-stream");
              header("Content-Disposition: atachment; filename=$file");
              header("Content-Transfer-Encoding: binary\r\n");
              header("Content-Range: bytes $br");
              header("Connection: close");
              fseek($fp, $from);
            } // if(isset($headers["Range"]))

            else {
              header("Content-Type: application/octet-stream");
              header("Content-Disposition: atachment; filename=$file");
              header("Content-Transfer-Encoding: binary\r\n");
              header("Content-Length: ".$filesize);
            } // else

Is een stukje uit mijn script, daar staat het redelijk duidelijk in imho :)

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • cemtex
  • Registratie: Januari 2000
  • Laatst online: 19-06 07:54

cemtex

Version 1.1.1

Topicstarter
toppie , thenks
Pagina: 1