v3g4rd Skrevet 6. mai 2008 Del Skrevet 6. mai 2008 (endret) Som topic sier, så lurer jeg på hvordan jeg kan unngå direkte nedlasting av filer på webserveren min. Fra før av har jeg laget et system ved hjelp av php og mysql som laster ned filer ved at en indeks blir spesifisert. URLen er da lagret i databasen, og blir sendt til brukeren når han kjører en spørring mot databasen om å hente den spesifiserte filen. Per i dag blir ikke selve linken til filen direkte synlig, men en trenger ikke å være et geni for å finne det ut. Jeg holder også på å lage et medlemssystem hvor det kun er de som har en bruker på websiden min som skal ha tilgang til bestemte filer - og disse skal være utilgjengelig for alle andre. Finnes det en måte å samkjøre php og .htaccess filen på slik at det for eksempel lagres en nøkkel i sessionen til de som er medlem, og at dette sjekkes i .htaccess når de prøver å laste ned? Endret 6. mai 2008 av v3g4rd Lenke til kommentar
Jonas Skrevet 6. mai 2008 Del Skrevet 6. mai 2008 Se for deg følgende link. file.php?id=5&sesid=1f73402c644002a7ea3c9532e8ba4139 .. sesid her er inneholdet i en session lagret på server, f.eks. MD5-hash av brukernavn/passord+ip. Ved hvert request sammenlikner du sesid i $_GET og $_SESSION og gir eventuelt tilbake en feil. På denne måten vil alle brukere ha hver sin unike link til samme fil og ingen kan dele disse med hverandre, uten å bruke samme brukerkonto. Lenke til kommentar
v3g4rd Skrevet 6. mai 2008 Forfatter Del Skrevet 6. mai 2008 (endret) Men nettleseren deres får allikevel tilsendt en direkte link til filen, som gjør at de kan laste ned denne filen senere eller spre den direkte linken videre til andre som igjen vil unngå denne kontrollen? Systemet mitt i dag fungerer slik: Brukeren får servert følgende url på nettsiden download.php?id=5 Hvis denne linken finnes, videresendes den egentlige URLen til brukeren. For eksempel: /downloads/fil1.rar Endret 6. mai 2008 av v3g4rd Lenke til kommentar
Jonas Skrevet 6. mai 2008 Del Skrevet 6. mai 2008 (endret) Ikke nødvendigvis. Dersom du viderefører med header-location blir det naturligvis et problem, men det må du jo ikke finne på å gjøre. Edit: Ta en titt på header(), dersom du ikke allerede er kjent med denne. <?php // We'll be outputting a PDF header('Content-type: application/pdf'); // It will be called downloaded.pdf header('Content-Disposition: attachment; filename="downloaded.pdf"'); // The PDF source is in original.pdf readfile('original.pdf'); ?> Endret 6. mai 2008 av Jonas Lenke til kommentar
v3g4rd Skrevet 6. mai 2008 Forfatter Del Skrevet 6. mai 2008 Okei, da har vi problemet med en gang. Å videresende med header-location er måten jeg har brukt til nå. Har du et annet forslag? Lenke til kommentar
v3g4rd Skrevet 6. mai 2008 Forfatter Del Skrevet 6. mai 2008 Aaah, nok en gang får jeg smekk for ikke å ha lest dokumentasjonen nøye nok. Takk skal du ha Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå