Veilige upload PDF bestanden
Ik ben bezig met een website waarbij de gebruikers persoonlijke informatie moeten kunnen downloaden. De persoonlijke bestanden zullen worden aangeleverd in PDF. Ik heb al op het internet gezocht naar een script die een goede basis zou vormen, maar ik zou graag wat adviezen willen hebben voordat ik hiermee begin. Zelf ben ik nog niet zo heel lang met PHP bezig en aangezien een goede beveiliging van deze PDF-bestanden erg belangrijk is, wou ik graag hulp van ervaren PHP'ers om deze bestanden zo veilig mogelijk te kunnen opslaan en aanbieden.
Het idee is als volgt:
Admin upload een PDF voor één bepaalde bezoeker (aan de hand van auto_increment ID).
Het bestand wordt ergens opgeslagen. Ik had gelezen dat je dit het beste op je server kan zetten (hoe?) en hoe kan ik dit veilig wegzetten op de server? (dus wel bereikbaar voor de bezoeker, maar niet via bijv. URL).
Ik zat zelf te denken dat bij het opslaan van de PDF een soort link gecreëerd moet worden die opgeslagen kan worden in de database? Die vervolgens via een MYSQL query uitgelezen kan worden en geprint kan worden op de persoonlijke pagina van de bezoeker?
De bezoeker moet het bestand uiteindelijk kunnen downloaden op zijn persoonlijke pagina.
Heeft iemand een idee hoe ik dit het beste (veiligste) aan kan pakken?
Procedure A. Gebruiker geeft door type bestand, omschrijving en betreffende pdf en roept procedure B aan.
Procedure B doet 2 dingen: 1) upload pdf en plaatst het op der server in een speciale directory en 2) maakt een record aan in MySQL database.
Op de website van de gebruiker wordt, als de pagina wordt aangeroepen, de gegevens uit de MySQL database gehaald en getoond en door op 1 van de omschrijvingen te drukken, wordt de pdf getoond.
Als dit ongeveer is wat je wilt, laat het me weten.
Toevoeging op 19/09/2012 09:13:37:
Sander, ik heb afgelopen week zoiets gemaakt.
Procedure A. Gebruiker geeft door type bestand, omschrijving en betreffende pdf en roept procedure B aan.
Procedure B doet 2 dingen: 1) upload pdf en plaatst het op der server in een speciale directory en 2) maakt een record aan in MySQL database.
Op de website van de gebruiker wordt, als de pagina wordt aangeroepen, de gegevens uit de MySQL database gehaald en getoond en door op 1 van de omschrijvingen te drukken, wordt de pdf getoond.
Als dit ongeveer is wat je wilt, laat het me weten.
Kijk anders eens naar verot.net, de uploadclass...
Bedankt voor de reacties! Zal van de week als ik er tijd voor heb even naar kijken. Ik kom er nog op terug!
Een idee:
Maak een beveiligde map op je website met behulp van .htaccess en .htpasswd.
Als je op deze termen googelt vindt je genoeg info hoe dit te doen. veel providers geven op hun site tevens uitleg.
Deze map is dan niet meer toegankelijk rechtstreeks via de browser maar wel voor PHP.
Je kunt via je php script dan dus de pdf files in de map opslaan, lezen, kopieren, verplaatsen en verwijderen. succes.
EDIT: Ik heb inmiddels al uitgevonden hoe ik zowel username als wachtwoord uit moet lezen en hoe deze automatisch kan inloggen. Ik krijg nu alleen nog de volgende melding bij het inloggen, deze zou ik graag overslaan. Hebben jullie enig idee hoe ik deze popup kan overslaan.
De melding die ik krijg is en dus wil overslaan:
U gaat zich aanmelden bij de website “www.domain.nl” met de gebruikersnaam “gebruikersnaam”.
Ophalen van de username en wachtwoord heb ik als volgt gedaan:
$auth_username = $_SERVER["REMOTE_USER"];
$auth_pw = $_SERVER["PHP_AUTH_PW"];
Om automatisch in te loggen doe je simpelweg:
http://gebruikersnaam:[email protected]/beveiligdemap
Alvast bedankt!
Gewijzigd op 17/10/2012 20:34:27 door Sander Drenth