Download $_GET bestand

Door PHP Newbie, 16 jaar geleden, 8.389x bekeken

Met dit script kun je ieder bestand wat je achter ?bestand zet laten downloaden.

Er wordt ook even gecontroleerd of het bestand bestaat. Eigenlijk is het niet echt een script maar meer een snippet, maar ja, ik denk dat er wel mensen zijn die het kunnen gebruiken.

Veel plezier

Edit:

../ beveiliging toegevoegd

Voorbeeld: http://phphulp.chessweb.eu/?download

Gesponsorde koppelingen

PHP script bestanden

  1. download-dollarget-bestand

 

Er zijn 25 reacties op 'Download dollarget bestand'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Terence Hersbach
Terence Hersbach
16 jaar geleden
 
0 +1 -0 -1
Handig ;)
goed commentaar erbij gegeven!
- -
- -
16 jaar geleden
 
0 +1 -0 -1
netjes
Michael -
Michael -
16 jaar geleden
 
0 +1 -0 -1
Bedankt :)
 
0 +1 -0 -1
Voor degene die een extra check willen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
//Voeg hier alle bestanden toe die gedownload mogen worden, en in /downloads staan
$array = array("bestand1.exe","bestand2.mp3");

//Verander regel 6 van bovenstaand script in:
        if(file_exists($dir.$_GET['bestand']) && in_array($_GET['bestand'],$array))
?>

Edit:
O ja, netjes script trouwens ;)
PHP Newbie
PHP Newbie
16 jaar geleden
 
0 +1 -0 -1
Andries,

Ik zat al te denken aan zo'n controle, maar je dan moet je steeds de array updaten, en je zet neem ik aan toch geen bestanden in de download map die niet gedownload mogen worden....
K i p
K i p
16 jaar geleden
 
0 +1 -0 -1
Dankje! Dat zocht ik!
PHP Newbie
PHP Newbie
16 jaar geleden
 
0 +1 -0 -1
Kijk even naar de update die ik heb toegevoegd, hierdoor is het niet meer mogelijk te downloaden uit upmappen!!!
Zero Dead
Zero Dead
16 jaar geleden
 
0 +1 -0 -1
downloads/../bestand.php - volgens mij werkt dat zowiezo niet:o
PHP Newbie
PHP Newbie
16 jaar geleden
 
0 +1 -0 -1
Jawel ;-)


16 jaar geleden
 
0 +1 -0 -1
En als ik nou eens / aan het begin of ga werken met ..\ op een windowsserver.
Misschien kan je nog een uitgebreide MIME check toevoegen zodat bij b.v. tekstbestanden het type text/plain word meegegeven.
Verder staan er hier al veel van.


16 jaar geleden
 
0 +1 -0 -1
mooi script en handig !;)
Willem Jan Z
Willem Jan Z
16 jaar geleden
 
0 +1 -0 -1
Of de map uitlezen in array... Zo hoef je de array niet steeds te updaten, en heb je toch zekerheid dat je alleen uit die map download. (Uiteraard dan wel controleren of niet ./ of ../ is geselecteerd, en of het geen map is (!is_dir))
Robert Deiman
Robert Deiman
16 jaar geleden
 
0 +1 -0 -1
@PHP Newbie

Leuk script, werkt ook prima.. Voor een eventuele update of nieuwe versie zou ik de laatste tip van Willem-Jan gebruiken, maar dan wel met extensie controle.. Bijvoorbeeld dat je alleen JPG en MP3 bestanden kan downloaden.. :)
PHP Newbie
PHP Newbie
16 jaar geleden
 
0 +1 -0 -1
Waarom zou je dat doen, je zet toch geen bestanden in de map downloads die niet gedownload mogen worden :-s
Robert Deiman
Robert Deiman
16 jaar geleden
 
0 +1 -0 -1
Het ligt eraan hoe je script in elkaar zit, met het script zoals het nu is kan je alle typen bestanden, uit alle typen mappen openen en downloaden.. Je kan inderdaad een restrictie op de map zetten.
Ik weet ook niet of er een uploadfunctie voor gebruikers bij zit bij jou, maar dan moet je er wel rekening mee houden, dat sommige dingen niet gedownload mogen worden.. Vandaar evt. een extensie controle.
PHP Newbie
PHP Newbie
16 jaar geleden
 
0 +1 -0 -1
dan zet je een extensie controle op de upload....
Maarten Slenter
Maarten Slenter
16 jaar geleden
 
0 +1 -0 -1
Mooi script joh ;)

kon ik dat ook maar:P
Danny
Danny
16 jaar geleden
 
0 +1 -0 -1
Ik ben echt een n00b ,,

maar hoe vraag je dit script op ? :$
met welke link vraag je dus een download bestand op.
PHP Newbie
PHP Newbie
16 jaar geleden
 
0 +1 -0 -1
simpel, zet gewoon ?bestand= achter de pagina.

dus stel het script sla je op als download.php
en in de map downloads heb je een bestandje staan wat heet bestand.gif

dan roep je het downloaden aan door te gaan naar download.php?bestand=bestand.gif
Robert Deiman
Robert Deiman
16 jaar geleden
 
0 +1 -0 -1
Trouwens. Er zit een (niet getest) lek in wat betreft die map omhoog:

http://www.domein.nl/downloads/ --> dat is de standaard map.

Met ../ kan je een map omhoog, en dat heb je afgevangen MAAR als ik

http://www.domein.nl/bestand.ext intype zit daar geen ../ in, maar zit ik wel een map hoger!
PHP Newbie
PHP Newbie
16 jaar geleden
 
0 +1 -0 -1
Klopt, zal zometeen ff wat aan doen

Ik check met file_exists() of het bestand bestaat. Dat werkt niet voor een bestand op een andere server, dus die beveiliging zit er al in.

Edit:

En zie legolas' reactie hieronder.
Legolas
Legolas
16 jaar geleden
 
0 +1 -0 -1
dan vraag je een URL op, dan krijg je dus:
downloads/http://www.domein.nl/bestand.ext

lijkt me niet dat dat wat oplevert
Katjan
katjan
16 jaar geleden
 
0 +1 -0 -1
wat dachten jullie dna van de null byte exploit?
of je dit specifieke script ermee kan omzeilen weet ik niet, nog nooit geprobeerd..
maar heb er iets over gelezen, en het leek qua code verdacht veel op die voorbeeld..
Legolas
Legolas
16 jaar geleden
 
0 +1 -0 -1
ik zou nog checken of je wel een bestand hebt. anders kun je met bestand=. een leeg bestand downen (de map) dus !is_dir(bladiebla)
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
AstroVersum
AstroVersum
15 jaar geleden
 
0 +1 -0 -1
Kan je dit script ook gebruiken voor streaming? (flash video .flv)?

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. download-dollarget-bestand

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.