Gå til innhold

PHP og sikker filbehandling


Anbefalte innlegg

Hei!

 

Jeg holder på med å utvikle et system for en bedrift som skal bl.a. håndtere dokumenter. Disse vil jeg så klart at ikke skal være tilgjengelige for hvermansen, og lurte på hva som er enklest og sikrest måte for å implementere filhåndtering. Kan man for eksempel bruke .htaccess filer for å hindre direkte tilgang til mappa med dokumentene, og så bruke php til å servere filer til, og lagre filer fra, brukeren? Jeg har begynt å se litt på Amazon S3, men skjønner dette er en del å sette seg inn i, samt at det innebærer jo også ekstra kostnader.

 

Noen som har innspill?

Lenke til kommentar
Videoannonse
Annonse

Det greieste er vel å lagre filene på en plass som ikke er tilgengelig fra Web Serveren, også bruke ett PHP-script som krever innlogging til å servere filene.

 

F.eks. så ligger din Webside i c:\minSide, mens filene ligger i c:\mineFiler

 

minFiler er ikke tilgjengelig via noen URL.

  • Liker 1
Lenke til kommentar

Det kommer litt an på the level of security her, men her er to muligheter som jeg har brukt tidligere.

 

1. Ha filene i et directory, bruk .htaccess til å stenge access og last ned via et script.

 

Om du har f.eks en database-tabell kan du generere hash for alle filene og ha et script som laster innholdet dynamisk. På denne måten er det ingen som vet den faktiske plasseringen til filene.

 

2. Ha filene utenfor webroot og last ned via et script.

 

Dersom du legger filene lavere enn index-fila (mao utenfor webroot), er det INGEN måter folk vil kunne få tak i filene dine, med mindre de hacker seg inn med shell-tilgang. Dette gjør det derimot vanskeligere for folk å kunne laste opp filer i arkivet. Vet egentlig ikke hvordan du skal løse et slikt eventuelt problem.

 

Jeg har i alle fall brukt første løsningen på en side som krevde godkjenning av brukeren før han/hun kunne laste ned fila. Hashen som blir sendt blir decodet (gadd ikke lage tabell, så jeg bare decoder filnavnet og gjør litt dritt her og der for å øke sikkerheten), ikke den beste løsningen, men det funker.

Lenke til kommentar

Flere gode forslag har, men en ting man bør huske på er at selv om man legger ting utenfor webroot og/eller bruker .htaccess, så er det fortsatt tilgjengelig for lesing på serveren.

 

jormo, du sier ingenting om hva slags løsning dette skal kjøre på. Er serveren delt? Isåfall, bør du være obs på at webserver-oppsett m/PHP er svært sårbar for at andre internt på serveren har lesetilgang til filene. Derfor, kjøres webserveren (som i Apache, Lighttpd e.l.) med forskjellig bruker for hver kunde? Hvis ikke, er de andre brukerne på serveren til å stole på? Er de ikke det, så har du et problem som er uløselig.

 

Merk:

Med stole på, så skal du ikke bare stole på de som personer, men også at programvaren de kjører ikke er sårbar for utilsiktet lesing av filer på serveren.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...